Многоступенчатые сборки используют несколько этапов FROM в одном Dockerfile — приложение собирается на одном этапе (со всеми инструментами сборки), а затем только финальные артефакты копируются в чистый, минимальный финальный этап. Это создает намного меньшие, более безопасные production-образы.
Проблема: инструменты сборки раздувают образ
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.
