Skip to content
Docker

Multi-Stage Build

Build artifacts in one stage and copy them into a slim final image.

#dockerfile#multi-stage#optimization

Code

docker
# Dockerfile
FROM node:20 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY --from=builder /app/dist ./dist
USER node
CMD ["node", "dist/server.js"]

# Result: tiny production image without dev deps and source