Container
•
•
By James
Dockerfile 最佳實踐:多階段建構 (Multi-stage Builds) 瘦身術
告別肥大的 Image
將編譯環境與執行環境分離是標準動作。例如 Go 語言專案:
- Build Stage:使用
golang:1.21進行編譯,產生 Binary。 - Runtime Stage:使用
gcr.io/distroless/static或alpine作為基底,僅複製 Binary 檔。
這樣做不僅能將 Image 大小從 800MB 縮減至 20MB,還能移除編譯工具與 Shell,大幅減少攻擊面。