TGViewer
DevOps DevOps @devopsitsec · 23.7K subscribers
Post #2128 3.26K
🚨 Сжали Docker-образ с 846 MB до 2.5 MB

Классическая проблема. Один Dockerfile, жирный базовый образ, внутри всё подряд. Билд-тулы, кэши, временные файлы, лишние пакеты. В прод улетает всё.

Результат понятен. Огромный образ, медленные pull, лишние деньги за хранение и увеличенная поверхность атаки.

Решение:

Первый шаг. Лёгкий builder. Переход с полного golang-образа на alpine сразу режет размер в разы.

Дальше главный приём. Multi-stage build. В первом этапе собираешь бинарник со всеми зависимостями. Во втором стартуешь с чистого минимального образа и копируешь только результат сборки.

В прод не попадает ничего лишнего. Ни компиляторов, ни кэшей, ни dev-пакетов.

Дополнительно вычищаются слои. Команды объединяются, временные файлы удаляются сразу. Через .dockerignore выкидывается весь мусор из контекста сборки.

Для Go это усиливается статической сборкой. CGO выключен, бинарь самодостаточный.

На выходе остаётся минимальный runtime с одним бинарником.

846 MB превращаются в 2.5 MB.
  • 🔥 6
  • 👍 4
  • ❤ 1
  • 👎 1
  • 😱 1
More from @devopsitsec
  1. Sep 21, 2026Kubernetes NodeLocal DNSCache: ускоряем DNS-запросы 🚀 Без NodeLocal DNSCache DNS-запрос о…
  2. Sep 21, 2026Есть серьезный разговор… об ИТ-инфраструктуре и требованиях к ней в современных условиях К…
  3. Sep 20, 2026🐳 Docker-образ с 3,17 ГБ до 354 МБ - почти в 9 раз меньше Такая оптимизация обычно достиг…
  4. Sep 17, 2026⚡️ Поды здоровы, а запросы в Kubernetes случайно отваливаются? Проверьте conntrack. Linux…
  5. Sep 16, 2026✔️ OpenAI на 60% снизила цены на голосовое управление агентами Work и Codex Теперь в дескт…
  6. Sep 16, 2026Что реально стоит за требованиями в вакансиях DevOps-инженера Открываешь вакансию - а там…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →