Как организовать multi-stage Dockerfile для Go?

Middle
268 просмотров
AFK Offer AI

Первый stage — сборка: FROM golang:1.22 AS builder, копируешь go.mod, делаешь go mod download, копируешь код и go build с CGO_ENABLED=0. Второй stage — runtime: FROM scratch или alpine, копируешь бинарник из builder. Результат — образ 10-20 МБ вместо 1+ ГБ. scratch даёт минимальный размер, но alpine удобнее для дебага (есть sh). Не забудь скопировать CA сертификаты если нужен HTTPS.

Следующий вопрос

Что такое struct tags для валидации?