1,5 GB на Docker-образе Django — это не «ну и ладно», а прямой сигнал, что в production уехал склад мусора.
Чаще всего внутри лежит одно и то же:
— dev-зависимости
— кеши pip/node
— тестовые файлы
— .git, .env, docs, локальные артефакты
— всё, что нужно было на этапе сборки, но не нужно рантайму
Что это ломает по факту:
— дольше CI/CD: сборка и деплой растут на минуты
— дороже инфраструктура: больше трафика и storage
— выше риск: лишние пакеты = лишняя поверхность атаки
Что обычно даёт самый заметный минус по весу:
1) multi-stage build
2) отдельный requirements для prod
3) чистка кешей после установки
4) .dockerignore без жалости
5) slim-базовый образ вместо «полного» 😈
Практика простая: сначала замерь размер образа по слоям, потом выкидывай всё, что не нужно приложению в runtime. Если после этого образ не стал меньше хотя бы на 30–40%, значит мусор всё ещё где-то спрятан.
Growth Room
@GrowthRoomHub
1,5 GB на Docker-образе Django — это не «ну и ладно», а прямой сигнал, что в production уехал склад мусора.
Этот пост опубликован в Telegram-канале Growth Room. Подписаться можно по ссылке: @GrowthRoomHub.