Docker Level 05: Multi-stage -- Go binary 10MB, образ 900MB
БОЛЬ Go-приложение. Бинарник – 10MB, статически слинкован, без зависимостей. docker images показывает 900MB. Внутри образа: весь Go SDK (500MB), git, gcc, make, исходники, кеш сборки. Ничего из этого не нужно в production. 900MB на каждый микросервис, 12 сервисов – это 10.8GB на ноду. При деплое скачивается 900MB на каждый pod restart. Rollout занимает минуты вместо секунд. Multi-stage build решает проблему: один этап для сборки, другой – для запуска. В финальный образ попадает только бинарник. ...