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のトリガー設定画面で設定できる。
これでデプロイの自動化ができた。