Golang のプログラムを Docker でビルドする
2022/04/26, last updated 2022/08/03 - ~1 Minute
go コンパイラをインストールするのもめんどうだな、と思っていた。
しかし、よくよく考えると、golang で作ったプログラムを docker で動かす時、builder に golang というイメージを使うが、そのイメージ自体、普通にコンパイラとして使えるよな、と気づいた。
なので、最近は、以下のようにしてコンパイルしている。
docker run --rm -v ~/go:/go -v $(pwd):/usr/src/go -w /usr/src/go -e GOPATH=/go golang:latest go build
元々、-v ~/go:/go と -e GOPATH〜 を設定していなかったが、そうすると、毎度ライブラリを取りにいってコンパイルが遅い。 自分の環境に合った設定に変えること。
コンテナでなく単体のプログラム、例えば aws lambda の実行ファイルを作る時などに便利なのではないだろうか。
まあ、自分が気づく程度のことは、既に他の誰かがやっているか・・・