Вы оптимизировали Docker-образ с 1,2 ГБ до 250 МБ через multi-stage build. Что занимало место, какие этапы разделили и какие базовые образы использовали?

Для снижения размера Docker-образа можно использовать несколько подходов:

Короткий ответ

Что ответить на собеседовании

Для снижения размера Docker-образа можно использовать несколько подходов:

Подробный разбор

Ответ с пояснениями

Для снижения размера Docker-образа можно использовать несколько подходов:

  1. Использовать минимальные базовые образы — например, alpine вместо ubuntu.
  2. Многоступенчатая сборка (multi-stage builds) — сначала собрать приложение в одном образе, затем скопировать только нужные артефакты в финальный образ.
  3. Удалять временные файлы и кеши после установки зависимостей внутри одного слоя.
  4. Объединять команды RUN в Dockerfile, чтобы уменьшить количество слоев.
  5. Игнорировать ненужные файлы с помощью .dockerignore.
  6. Минимизировать количество установленных пакетов и использовать только необходимые.

Пример многоступенчатой сборки для Python:

FROM python:3.10-alpine 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"]

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее