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

Здесь первый этап устанавливает зависимости и собирает приложение, а второй — копирует только нужные файлы и зависимости в легковесный образ.