Multi-stage build отделяет среду сборки от runtime-образа: компилятор и исходники остаются на builder-стадии, а в финальную копируются только нужные артефакты.
Расскажи про мультистейдж Docker билд — что делал, как оптимизировал процесс сборки и доставки сервиса?
Multi-stage build отделяет среду сборки от runtime-образа: компилятор и исходники остаются на builder-стадии, а в финальную копируются только нужные артефакты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Multi-stage build отделяет среду сборки от runtime-образа: компилятор и исходники остаются на builder-стадии, а в финальную копируются только нужные артефакты.
В Go это часто бинарник плюс необходимые сертификаты и данные времени. Но минимальный scratch-образ подходит не всегда: нужно учитывать cgo, динамические библиотеки и требования приложения.
Для ускорения сборки полезно отделить скачивание зависимостей от часто меняющегося кода, использовать кеш и .dockerignore. Для доставки важны воспроизводимые версии базовых образов, проверка содержимого и работа без лишних привилегий. Уменьшение образа само по себе не доказывает безопасность.
Источник: docs.docker.com.