Dockerfile Cheat Sheet/Use multi-stage build

Build artifacts in one stage and copy only runtime output into the final stage.

Section: Common Patterns

Use multi-stage build

dockerfile
dockerfile
FROM node:20-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
Explanation

Multi-stage builds keep runtime images smaller and cleaner.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Common Patterns
Run as non-root
Switch the runtime user away from root.
OpenIn sheetdockerfilesame section
Add health check
Define a health check command for the container.
OpenIn sheetdockerfilesame section
Cache dependencies effectively
Copy dependency manifests before application code to maximize layer cache reuse.
OpenIn sheetdockerfilesame section
Use .dockerignore
Exclude unnecessary files from build context.
OpenIn sheetgitignoresame section
Copy with ownership
Copy files with explicit ownership.
OpenIn sheetdockerfilesame section
Build a specific stage
Build only up to a named stage.
OpenIn sheetbash2 tag match