Для чего используют Multi-stage builds в Docker

Python Senior Без компании
Для чего используют Multi-stage builds в Docker
Ответы
Multi-stage builds в Docker позволяют оптимизировать размер итогового образа, разделяя процесс сборки на несколько этапов. Основная идея — использовать промежуточные образы для сборки и зависимостей, а в финальный образ копировать только необходимые артефакты. Пример с Python: ``` # Этап сборки FROM python:3.9 as builder WORKDIR /app COPY requirements.txt . RUN pip install --user -r requirements.txt # Финальный этап FROM python:3.9-slim WORKDIR /app COPY --from=builder /root/.local /root/.local COPY . . ENV PATH=/root/.local/bin:$PATH CMD ["python", "app.py"] ``` Преимущества: - Уменьшение размера образа (не включаются dev-зависимости, исходный код) - Повышение безопасности (меньше уязвимостей из-за отсутствия ненужных пакетов) - Ускорение деплоя за счет меньшего размера образа