diff --git a/Dockerfile.arm b/Dockerfile.arm new file mode 100644 index 0000000..97dffde --- /dev/null +++ b/Dockerfile.arm @@ -0,0 +1,34 @@ +FROM node:14-alpine + +WORKDIR /app + +COPY package*.json ./ + +RUN apk --no-cache --virtual build-dependencies add python make g++ \ + && npm install + + +COPY . . + +RUN mkdir -p ./public ./data + +# Build server code +RUN npm run build + +# Build client code +RUN cd ./client \ + && npm install --production \ + && npm run build \ + && cd .. \ + && mv ./client/build/* ./public + +# Clean up src files +RUN rm -rf src/ ./client \ + && npm prune --production \ + && apk del build-dependencies + +EXPOSE 5000 + +ENV NODE_ENV=production + +CMD ["node", "build/server.js"] \ No newline at end of file diff --git a/README.md b/README.md index 601b8c6..9040a3e 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,21 @@ npm run dev #### Building image ```sh +# Building image for Linux docker build -t snippet-box . + +# Build image for ARM +docker buildx build \ + --platform linux/arm/v7,linux/arm64 \ + -f Dockerfile.arm \ + -t snippet-box:arm ``` #### Deployment ```sh # run container +# for ARM use snippet-box:arm tag docker run -p 5000:5000 -v /path/to/data:/app/data snippet-box ```