Les builds multi-stages utilisent plusieurs stages FROM dans un seul Dockerfile — en construisant l'application dans une stage (avec tous les outils de compilation) et en copiant uniquement les artefacts finaux dans une dernière stage propre et minimale. Cela produit des images de production beaucoup plus petites et plus sécurisées.
Le problème : les outils de compilation gonflent l'image
Building an app needs build tools (compilers, dev dependencies, SDKs), but the
FINAL image shouldn't include them:
→ they bloat the image (larger size, slower deploys)
→ they increase the attack surface (more software = more vulnerabilities)
→ You want only the built artifact + its runtime in the final image.
