技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

Cloud Build【GCP】

Cloud Buildとは

Google Cloud上で、何らかのトリガーをキーにしてCI/CDを自動化することができるサービスです。

使い方

gcloudコマンド、APIを使用して手動で設定する方法と、 GCPGUI上でトリガーを設定する方法があります。
まずは、CI/CDの自動化が目的なので、トリガーを設定します。

方法は公式または、こちらの解説サイトが参考になります。


ここではポイントを記載します。

ビルドに使用するファイル

ビルド時に使用するファイルをDockerfileまたはyaml(またはjson)形式のビルド構成ファイルから選択することができます。


Docker Imageのビルドのみを行う場合は、Dockerfileで構いません。

他に何か行いたい場合、例えば、併せてk8sに関する処理行いたい場合は、 ビルド構成ファイルに各stepを記載します。

いずれのファイルも指定したリポジトリパスからの相対パスで指定します。

Dockerfile

gcrのホスト名をimage名に指定することで、build後、Container Registryにpushされます。


ビルド構成ファイル

書き方は公式で解説されています。


このファイルに記載された各stepはデフォルトでは、上から順に、前のstepが正常に完了したら次のstepが実行されます。

前のstepが失敗すれば、そこで全体のbuildがストップします。

idフィールドとwaitForフィールドを用いることで、並列処理を行うことも可能です。


Dockerfileと同様、buildするimageの名前にgcrのホスト名を用いることで、Container Registryにimageをpushさせることができます。

ビルド構成ファイルのartifactsフィールドを使えば、Cloud Storageに保存することも可能です。


GUIにて、ビルド構成ファイル内で使う変数を定義でき、$<変数名>の形でビルド構成ファイル内で変数展開することができます。

...
- id: Push docker image
  name: 'gcr.io/cloud-builders/docker'
  args: ["push", "asia.gcr.io/pj-xxx/xyz:$_VERSION"]
...


履歴の確認

コマンド入力の他GUI上から、buildの履歴、ログを確認することができます。


参考

公式

GCPのCloud Buildを使おう

Docker + Google Cloud Buildを使ってCIしようとしてる

たのしいCloud Build