Sobes.tech
Junior — Middle
109

Quand et pourquoi est-il recommandé d'utiliser une construction multi-étapes dans Docker pour optimiser les processus de création d'images?

Réponse de l'IA

sobes.tech IA

Многоэтапная сборка (multi-stage build) в Docker рекомендуется применять для уменьшения размера итогового образа и повышения безопасности. В первом этапе собирается приложение с необходимыми инструментами и зависимостями, а в последующих этапах копируются только нужные артефакты в минимальный базовый образ. Это позволяет исключить из финального образа компиляторы, исходники и временные файлы, что ускоряет загрузку и развёртывание контейнеров.

Пример:

# Этап сборки
FROM python:3.10-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --user -r requirements.txt
COPY . .
RUN python setup.py install

# Финальный образ
FROM python:3.10-alpine
COPY --from=builder /root/.local /root/.local
COPY --from=builder /app /app
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "/app/main.py"]

Такой подход помогает оптимизировать размер и безопасность образов, особенно в продакшн-средах.