Встречается на 1% собеседований по Python

Где полезна Multi-stage builds в Docker

Multi-stage builds в Docker полезны для уменьшения размера итогового образа, особенно при сборке приложений на компилируемых языках (Go, Rust, C++). Они позволяют разделить процесс сборки и финальный образ, оставляя только необходимые артефакты.

Пример для Python:

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

# Финальный этап
FROM python:3.9-slim
WORKDIR /app
COPY --from=builder /root/.local /root/.local
COPY . .
ENV PATH=/root/.local/bin:$PATH
CMD ["python", "app.py"]

Ключевые преимущества:

  1. Уменьшение размера образа (используем -slim базовый образ)
  2. Улучшение безопасности (меньше слоёв и зависимостей)
  3. Чистота сборки (промежуточные артефакты не попадают в финальный образ)
  4. Оптимизация кэширования (можно пересобирать только нужные этапы)

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы