Какие знаешь способы оптимизации Dockerfile

Python Senior Без компании
Какие знаешь способы оптимизации Dockerfile
Ответы
- **Многоступенчатая сборка** — уменьшает итоговый образ, оставляя только необходимые артефакты. ``` FROM python:3.9 as builder COPY requirements.txt . RUN pip install --user -r requirements.txt FROM python:3.9-slim COPY --from=builder /root/.local /root/.local ``` - **Использование легковесных базовых образов** (например, `alpine`, `slim`). ``` FROM python:3.9-slim ``` - **Объединение команд RUN** — уменьшает количество слоев. ``` RUN apt-get update && apt-get install -y \ git \ curl \ && rm -rf /var/lib/apt/lists/* ``` - **Кэширование зависимостей** — копируем `requirements.txt` отдельно и устанавливаем зависимости до копирования кода. ``` COPY requirements.txt . RUN pip install -r requirements.txt COPY . . ``` - **Игнорирование ненужных файлов** через `.dockerignore`. ``` __pycache__/ *.pyc .env ``` - **Удаление временных файлов** в том же слое, где они созданы. ``` RUN wget https://example.com/file.tar.gz \ && tar -xzf file.tar.gz \ && rm file.tar.gz ```