Sobes.tech
Back to questions
Junior — Middle
60

Использовал ли ты многослойную сборку Docker изображений через multi-stage build?

Answer from AI

sobes.tech AI

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

Пример:

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

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

Такой подход уменьшает размер итогового образа и изолирует этапы сборки от финального окружения.