Sobes.tech
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"]

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