Sobes.tech
Junior — Middle
68

Какими способами можно снизить размер Docker-образа?

Companies where asked
ООО УайтСнейк

Answer from AI

sobes.tech AI

Для снижения размера 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"]

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