概要
Alpineベースのイメージが軽量イメージとして認知されていますが、Goの場合は単一バイナリで動くのでイメージ内にgolangが入っている必要はありません。
なので最も軽量と言われているScratch imageを利用することで、dockerイメージを軽量化することができます。
環境
- golang 1.8.3
- Docker 17.06.0-ce
ビルド手順
対象ファイル
以下のファイルを扱うことにします。
package main import ( "fmt" "io/ioutil" "net/http" "os" ) func main() { resp, err := http.Get("https://google.com") if err != nil { fmt.Println(err) os.Exit(1) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println(len(body)) }続きを読む