From 647fbaa404d4550375bc77b14925b0c2a1c06240 Mon Sep 17 00:00:00 2001 From: Zsolt Szabo Date: Wed, 28 Sep 2022 14:26:00 +0200 Subject: [PATCH] Refactor example in best practices --- docs/BestPractices.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/BestPractices.md b/docs/BestPractices.md index 53518451..008a667d 100644 --- a/docs/BestPractices.md +++ b/docs/BestPractices.md @@ -214,7 +214,6 @@ If you want to achieve an even smaller image size than the `-alpine`, you can om ```Dockerfile ARG ALPINE_VERSION=3.16 - FROM node:18-alpine${ALPINE_VERSION} AS builder WORKDIR /build-stage COPY package*.json ./ @@ -223,19 +222,20 @@ RUN npm ci COPY . ./ RUN npm run build - FROM alpine:${ALPINE_VERSION} -RUN apk add --no-cache libstdc++ dumb-init -RUN addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node +# Create app directory +WORKDIR /usr/src/app +# Add required binaries +RUN apk add --no-cache libstdc++ dumb-init \ + && addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node \ + && chown node:node ./ COPY --from=builder /usr/local/bin/node /usr/local/bin/ COPY --from=builder /usr/local/bin/docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] -WORKDIR /usr/src/app -RUN chown node:node ./ -# Update the following COPY lines based on your codebase -COPY --chown=node:node --from=builder /build-stage/node_modules ./node_modules -COPY --chown=node:node --from=builder /build-stage/dist ./dist USER node +# Update the following COPY lines based on your codebase +COPY --from=builder /build-stage/node_modules ./node_modules +COPY --from=builder /build-stage/dist ./dist # Run with dumb-init to not start node with PID=1, since Node.js was not designed to run as PID 1 CMD ["dumb-init", "node", "dist/index.js"] ```