created: 2019-07-17T06:47:50.000Z
GCPのCloud Build入門
circleciではシェルのコマンドを組み合わせてビルドを実施するが、 GCPのcloudbuildはdockerイメージを使ってビルドを実施していく
たとえば、ビルド処理でdockerイメージbuildする必要があるなら、クラウドビルダーのdockerイメージを使ってdockerイメージをpullするところから始まる (紛らわしい)
リポジトリ
ソースコードをビルドするとして、そのソースコードをもってくるリポジトリが必要になる デフォルトでCloud Buildは以下の3つのリポジトリに対応している
- CloudSourceRepository (GCP)
- BitBucket
- GitHub
GitHubなどの外部リポジトリとミラーリングできたり、フックして色々処理を動かせたりする
ビルドする場合はこんな処理順になる
- GitHubへのpush
- cloud build をトリガー、ビルドを実施
checkout
Cloud Build では設定したリポジトリのコードがすべてカレントディレクトリにある状態で処理が開始される
cloudbuild.yamlの例
cloudbuild.yamlは以下のような形式になる
steps:
- name: 'gcr.io/cloud-builders/git'
args: ['clone', 'https://github.com/GoogleCloudPlatform/cloud-builders']
env: ['PROJECT_ROOT=hello']
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/my-project-id/myimage', '.']
name
docker run
するイメージ名を指定する
デフォルトで使えるイメージはこちら
args
docker run
に渡す引数はここに指定する
その他
他にもステップを並列実行したり、環境変数を設定したりできる