- tags: 🔖GCP 🔖Docker
- refs.
- 概要: Cloud Build: サーバーレス CI / CD プラットフォーム
- cloudbuild.yamlの書き方: 基本的なビルド構成ファイルの作成
- gcloud buildの使い方: コンテナ イメージのビルド
- 概要: Cloud Build: サーバーレス CI / CD プラットフォーム
Google Cloud Buildとは
GCP上でDocker Imageを作成するサービス. GCPサービスのひとつ.
Cloud Buildのビルド構成ファイル(cloudbuild.yml/cloudbuild.json)
Cloud Buildに渡す各種オプションを定義する. gcloudの引数の代わりに指定.
cloudbuild.yaml を作成.
steps:
- name: 'gcr.io/cloud-builders/docker'
args: [ 'build', '-t', 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1', '.' ]
images:
- 'us-central1-docker.pkg.dev/$PROJECT_ID/quickstart-docker-repo/quickstart-image:tag1'
gcloudのオプション —config とともに指定.
$ gcloud builds submit --config cloudbuild.yaml
基本的な書き方: 🔗基本的なビルド構成ファイルの作成
クラウドビルダー
設定ファイルの必須指定要素 name に指定するもの.
ビルドで利用するためのベースとなるコンテナイメージがある. 元から提供されているものとそれをカスタムしたコミュニティ提供のものがある.
ref. Cloud builders
Cloud Build Howto
DockerfileをつかってGoogle Cloud BuildでDockerイメージをビルドする
ソースコードとDockerfileがあるディレクトリで以下を実行.
$ gcloud builds submit --tag {region}/PROJECT_ID/IMAGE_NAME
- regionは gcr.ioやasia.gcr.io(日本だとこっちがいい).
- PROJECT_IDはGCPのものを利用.
- IMAGE_NAMEは任意.
Cloud Build トラブルシューティング
🔧ローカルファイルがサーバに送信されないとき
サイズ容量が大きいファイルや不要なファイルは自動で除外される.
Creating temporary tarball archive of 5 file(s) totalling 2.0 KiB before compression. Some files were not included in the source upload.
.gcloudignore をDockerfileと同じ場所に作成する必要がある.
もしくは 以下でglobalに無効化.
$ gcloud config set gcloudignore/enabled false
どうも構成ファイル(gcloudbuild.yaml)を指定すると.gcloudignoreを見てくれない. —ignore-fileで明示的に指定する(or おそらく構成ファイルに書く).
$ gcloud builds submit --config gcloudbuild.ymal --ignore-file .gcloudignore
🔧Cloud Buildのビルドのスピードを上げたい
高性能なビルドインスタンスを4種類の中から指定できる.
optionのmachine_typeで指定.数値はCPU数(8/32 CPUs).
- machine-type
- n1_highcpu_8
- n1_higucpu_32
- e2_highcpu_8
- e2_highcpu_32
高性能なほどお金がかることも注意.
ref. REST Resource: projects.buildsd
🔧ビルドが失敗 - no space left on device
Google Cloud Buildを実行している環境の空き容量不足(メモリではない).
- ref. 以下はGCEのHelp, 参考までに.