GoReleaserを使ってDocker Imageをbuild&pushする

以前、GoReleaserを使ってのGoのアプリケーションを配布するというタイトルの記事でGoReleaserを使ったバイナリ配布の方法について書いたが、Dockerhubへのイメージプッシュもやってみたのでまとめておく。

ソースコードの全体像はbmf-san/gondolaを参照。

.goreleaser.yamlを設定

ちょっと長たらしいが、こんな感じでdockersのオプションを書く。

長らしくなっているのは、builds(バイナリ作成)の方のオプションと同じように成果物を作成するように調整しているためである。(もうちょっとまとめて書いたりできるのかもしれないが・・)

goreleaserのデフォルト値は以下を参照。

cf. github.com/goreleaser/goreleaser/blob/main/.goreleaser.yaml

Dockerfileの作成

COPYしているバイナリは、goreleaserがバイナリを生成してくれるので、自分でビルドする必要はない。

Github Actionsのworkflowを編集

DockerhubへのイメージプッシュがしたいのでDockerhubへログインするように調整。

secretsはGithubのリポジトリの設定から事前に設定しておく。

と、こんな感じで簡単に設定できる! GoReleaser便利・・!!