Multi-stage Build

DevOps 🟡 Mid

Definition

Technique Dockerfile utilisant plusieurs FROM pour séparer build et runtime. L'image finale ne contient que les artefacts nécessaires.

Analogie

Construire un meuble en atelier puis ne livrer que le meuble fini, pas les outils ni les copeaux.

Exemple de code

FROM node:20 AS build
WORKDIR /app
COPY . .
RUN npm ci && npm run build

FROM node:20-alpine
COPY --from=build /app/dist ./dist
CMD ["node", "dist/server.js"]

Cas d'usage

Réduire la taille des images de production de 1 Go à moins de 100 Mo.

Anti-pattern

Inclure les devDependencies et le code source dans l'image finale.
#devops#docker#interview#optimisation