Junior — Middle
102
Wanneer en waarom wordt het aanbevolen om een meerstaps bouwproces in Docker te gebruiken om het maken van beelden te optimaliseren?
Antwoord van AI
sobes.tech AI
Многоэтапная сборка (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"]
Такой подход помогает оптимизировать размер и безопасность образов, особенно в продакшн-средах.