TGTGInsightаналитика telegramLIVE / telegram public index
← DevOps
DevOps avatar

TGINSIGHT POST

Post #2128

@DevOPSitsec

DevOps

Просмотры3,050Количество просмотров
Опубликован11 апр.11.04.2026, 07:45
Содержимое поста

Содержимое

🚨 Сжали Docker-образ с 846 MB до 2.5 MB Классическая проблема. Один Dockerfile, жирный базовый образ, внутри всё подряд. Билд-тулы, кэши, временные файлы, лишние пакеты. В прод улетает всё. Результат понятен. Огромный образ, медленные pull, лишние деньги за хранение и увеличенная поверхность атаки. Решение: Первый шаг. Лёгкий builder. Переход с полного golang-образа на alpine сразу режет размер в разы. Дальше главный приём. Multi-stage build. В первом этапе собираешь бинарник со всеми зависимостями. Во втором стартуешь с чистого минимального образа и копируешь только результат сборки. В прод не попадает ничего лишнего. Ни компиляторов, ни кэшей, ни dev-пакетов. Дополнительно вычищаются слои. Команды объединяются, временные файлы удаляются сразу. Через .dockerignore выкидывается весь мусор из контекста сборки. Для Go это усиливается статической сборкой. CGO выключен, бинарь самодостаточный. На выходе остаётся минимальный runtime с одним бинарником. 846 MB превращаются в 2.5 MB.