Cloud RunアプリをCloud Buildでデプロイできるようにする

公開日時

Cloud RunでNode.jsアプリを作った。

せっかくなのでCloud Buildを使って、特定のブランチにpushしたら自動でデプロイできるようにしてみた。

基本的には↓記事の手順を参考に進めたらできる。

1点、環境変数の設定方法に迷ったので対応方法をまとめておく。

[[cloudbuild.yaml]]にcloud run deployの設定を書く際に代入変数を使った。

こうしておけばcloudbuild.yamlに環境変数の内容を直書きしなくて済む。

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: ['build', '-t', 'gcr.io/$PROJECT_ID/xxx-app:${SHORT_SHA}', '.']
- name: 'gcr.io/cloud-builders/docker'
  args: ['push', 'gcr.io/$PROJECT_ID/xxx-app']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['run', 'deploy', 'xxx-app', '--image', 'gcr.io/$PROJECT_ID/xxx-app:${SHORT_SHA}', '--region', 'asia-northeast1', '--platform', 'managed', '--allow-unauthenticated', '--update-env-vars', 'NODE_ENV=production,SAMPLE_SECRET=${_SAMPLE_SECRET}']
images:
- gcr.io/$PROJECT_ID/xxx-app

代入変数はCloud Buildのトリガー設定画面で設定できる。

cloud build

これでデプロイの自動化ができた。

参考


Related #gcp

Cloud Runを試す

helloworldコンテナを試した

ngrokの代わりにinletsを使う

固定ドメインが設定できるのでbot開発に便利

inletsで複数ドメインが使えるようにする

CaddyのCloudflare Pluginを使ってワイルドカード証明書を設定した

Cloud Datastoreのローカル環境をDockerで構築する

CloudDatastoreエミュレータとgoogle-cloud-guiの環境を構築

gcloud configでアカウントを切り替える

gcloud config configurations activateで切り替える

Cloud Buildの結果をSlackに通知する

公式ドキュメントの手順に沿って設定