Docker-образ Django-приложения дорос до 1,5 GB — это уже не «ну и ладно», а прямой сигнал посмотреть на состав.
Что обычно раздувает образ:
— dev-зависимости, которые не нужны в production;
— build-артефакты и кэш;
— лишние системные пакеты;
— файлы проекта, которые вообще не участвуют в runtime.
Что это даёт на практике:
— медленнее собираются и деплоятся образы;
— дольше стартуют окружения;
— растёт нагрузка на registry и CI/CD;
— сложнее поддерживать предсказуемую production-сборку.
Полезный принцип тут простой: в production должен ехать только тот набор, без которого приложение не запустится. Всё остальное — кандидат на вынос.
Обычно хороший эффект дают:
— multi-stage build;
— отдельные requirements для dev и prod;
— .dockerignore без мусора;
— проверка итогового размера после каждого изменения.
Минус 500 MB в образе — это не косметика, а вполне измеримая экономия времени на каждом цикле сборки и выката. Иногда это самая дешёвая оптимизация инфраструктуры.
Retention Mix
@RetentionMixPro
Docker-образ Django-приложения дорос до 1,5 GB — это уже не «ну и ладно», а прямой сигнал посмотреть на состав
Этот пост опубликован в Telegram-канале Retention Mix. Подписаться можно по ссылке: @RetentionMixPro.