Для чего используют 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-зависимости, исходный код)
- Повышение безопасности (меньше уязвимостей из-за отсутствия ненужных пакетов)
- Ускорение деплоя за счет меньшего размера образа