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 の実行ファイルを作る時などに便利なのではないだろうか。

まあ、自分が気づく程度のことは、既に他の誰かがやっているか・・・