Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run ยป
HTML / CSS / JS
# INEFFICIENT: deps reinstall on every code change # COPY . . # RUN npm ci # EFFICIENT: deps cached separately from code FROM node:20-alpine WORKDIR /app # Layer 1: OS packages (rare change) RUN apk add --no-cache dumb-init # Layer 2: package files (changes when deps update) COPY package.json package-lock.json ./ # Layer 3: npm install (cached until layer 2 changes) RUN npm ci --omit=dev # Layer 4: app source (changes on every commit) COPY src/ ./src/ EXPOSE 3000 ENV NODE_ENV=production ENTRYPOINT ["dumb-init","--"] CMD ["node","src/server.js"] # .dockerignore contents: # node_modules/ # .git/ # .env* # *.test.js # coverage/ # docs/
Result
Open