[Docker] GitHub ActionsでDocker Build Cloudを利用する


ここでは、ビルダーの作成詳細については触れない。

Build Cloudでの定義は公式ドキュメントに書いてある。

Use Docker Build Cloud in CI | Docker Docs

参考にしながら、地道に置換しても良いし、Build Cloudにログインして

Docker Build Cloud

Cloud buildersの(Create new cloud builderで作成後)既存のビルダーをクリックすると、CLI、GitHub Actionsなどの記述がアカウントに合わせて表示される。

ただし、エンドポイントなどの情報をべた書きするなんてことは避けるべきなので、GitHub Actionsのシークレットなどを活用する。

こんな感じ。

利用上のはなし

速度について

ローカルキャッシュが効いている場合、速い。Dockerfileの作り次第では1分を切る。
ベースがDocker Hubに登録しているイメージなら、特に有効。

使用時間消費について

分単位で切り上げられる。1秒で終わったとしても1分。

マルチプラットフォームはプラットフォーム数分だけ個別に消費。linux/amd64とlinux/arm64をビルドしたときに、それぞれ1秒で終わったとしても、2分消費。
Starterの場合、実行回数=100分/プラットフォーム数なので、プラットフォーム数が2の場合、50回で上限に到達する。

尚、初回のみ、CLIやCI/CDのセットアップで合計80分ほど利用期限ありのおまけがついてくる。

ローカルキャッシュについて

無料のスタータープランの場合、Docker Hubのプランによって異なる。
FreeとProは同じ50GiB。

料金プラン | Docker

用途について考える

GitHub Actionsから呼ぶ場合は、GitHub ActionsとDocker Build Cloudの両方を消費する。
そのため、コストは両方を見積もっておく必要がある。

CLIの場合はDocker Cloud Buildだけ消費する。

コンテナーのビルドは面白いように数GB単位でファイルの書き込みが発生する。
SSDの書き込みによる寿命を気にする人はCLIでBuild Cloudを利用すれば、素早く確認できるのでメリットか。

後はDocker HubのPull制限緩和が期待できる。