1,5 GB для Django-образа — это уже не контейнер, а склад. И почти всегда в нём лежит один и тот же набор: dev-зависимости, кеш pip, сборочные артефакты, тестовые файлы, `.git`, локальные настройки, лишние системные пакеты.
Чёрный кейс тут простой: образ раздувают, а потом удивляются, почему:
- CI собирает дольше;
- деплой идёт медленнее;
- registry платит за лишний объём;
- уязвимости приезжают вместе с пакетом, который вообще не нужен в проде.
Что обычно режет сотни мегабайт:
1. multi-stage build;
2. установка только production-зависимостей;
3. `pip --no-cache-dir`;
4. `.dockerignore` без мусора;
5. отдельный non-root runtime-слой;
6. отказ от `apt install` «на всякий случай».
Если после такой чистки образ не стал меньше хотя бы на 300–500 MB, значит, внутрь всё ещё тащат лишнее. И это уже не оптимизация, а привычка хранить мусор в продакшене. 🔧
Host & DNS
@HostDnsPro
1,5 GB для Django-образа — это уже не контейнер, а склад. И почти всегда в нём лежит один и тот же набор: dev-
Этот пост опубликован в Telegram-канале Host & DNS. Подписаться можно по ссылке: @HostDnsPro.