Зачем в Dockerfile используются два базовых образа и несколько этапов, а не одна сборка?

Multi-stage build отделяет среду сборки от среды запуска. В первом этапе находятся компиляторы и зависимости сборки, во второй копируются только необходимые runtime-артефакты.

Короткий ответ

Что ответить на собеседовании

Multi-stage build отделяет среду сборки от среды запуска. В первом этапе находятся компиляторы и зависимости сборки, во второй копируются только необходимые runtime-артефакты.

Подробный разбор

Ответ с пояснениями

Multi-stage build отделяет среду сборки от среды запуска. В первом этапе находятся компиляторы и зависимости сборки, во второй копируются только необходимые runtime-артефакты.

Это уменьшает итоговый образ и набор лишних инструментов. Два этапа могут использовать разные базовые образы, если полученный артефакт совместим с runtime: учитывайте архитектуру, системные библиотеки и libc. Несколько FROM создают отдельные стадии, а не просто добавляют все содержимое первой во вторую.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее