From b04e0f4f4239532f2f4dfa52caf9f7c19e059c32 Mon Sep 17 00:00:00 2001 From: anarch3 Date: Thu, 24 Nov 2022 03:35:27 -0500 Subject: [PATCH] make docker images smaller by 150% --- Dockerfile | 32 ++++++++++++++++++++++---------- docker-entrypoint.sh | 8 -------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6f7cfb3..4c1dbde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,22 @@ -FROM node:16 - -# Install dependencies -COPY package*.json ./ -RUN npm install - -# Package app source -COPY . . - -ENTRYPOINT ["./docker-entrypoint.sh"] +FROM node:16-alpine AS BUILD_IMAGE + +RUN apk add curl bash + +# Install dependencies +COPY package*.json ./ +RUN npm install + +RUN npm prune --production + +RUN curl -sf https://gobinaries.com/tj/node-prune | sh + +FROM node:16-alpine + +COPY --from=BUILD_IMAGE /node_modules ./node_modules +COPY . . + +ENV NODE_ENV=production + +RUN node db.js + +CMD ["npm", "start"] \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index a97729d..1d408a5 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,12 +1,4 @@ #!/bin/bash -# Exit build script on first failure. -set -e - -# Exit on unset variable. -set -u - -set -x - node db.js npm start