Junior — Middle
69
Какими способами можно снизить размер Docker-образа?
Компании, где спрашивали
ООО УайтСнейк
Ответ от нейросети
sobes.tech AI
Для снижения размера Docker-образа можно использовать несколько подходов:
- Использовать минимальные базовые образы — например,
alpineвместоubuntu. - Многоступенчатая сборка (multi-stage builds) — сначала собрать приложение в одном образе, затем скопировать только нужные артефакты в финальный образ.
- Удалять временные файлы и кеши после установки зависимостей внутри одного слоя.
- Объединять команды RUN в Dockerfile, чтобы уменьшить количество слоев.
- Игнорировать ненужные файлы с помощью
.dockerignore. - Минимизировать количество установленных пакетов и использовать только необходимые.
Пример многоступенчатой сборки для 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"]
Такой подход позволяет получить компактный образ с только необходимыми файлами.