Приходилось ли писать multi-stage images в Docker файлах
Python
Junior
Без компании
Приходилось ли писать multi-stage images в Docker файлах
Ответы
Да, приходилось. Multi-stage сборка в Docker позволяет оптимизировать итоговый образ, уменьшая его размер и улучшая безопасность. В первом этапе (stage) собирается приложение со всеми зависимостями, а во втором - копируются только необходимые артефакты в чистый образ.
Пример для Python-приложения:
```
# Stage 1: сборка зависимостей
FROM python:3.9-slim as builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
# Stage 2: финальный образ
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"]
```
**Преимущества:**
- Уменьшение размера образа (не остаются временные файлы, кэш pip и т.д.)
- Безопасность (меньше слоёв и уязвимостей)
- Чистота (только нужные файлы в финальном образе)