Junior — Middle
96
Puteți explica conceptul de construire în mai multe etape în Docker și cum este utilizat?
Companiile au fost întrebate
ООО УайтСнейк
Răspuns de la AI
sobes.tech AI
Многоступенчатая сборка (multi-stage build) в Docker позволяет создавать несколько этапов сборки в одном Dockerfile, чтобы уменьшить размер итогового образа и отделить этапы компиляции и упаковки.
Идея в том, что на первых этапах вы используете полный образ с инструментами для сборки приложения (например, компиляторы, зависимости), а на последних этапах копируете только необходимые для запуска артефакты в минимальный образ.
Это позволяет:
- Сократить размер итогового образа, исключив ненужные файлы и инструменты.
- Упростить поддержку 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"]
Здесь первый этап устанавливает зависимости и собирает приложение, а второй — копирует только нужные файлы и зависимости в легковесный образ.