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 FunctionsのNode.jsバージョンを更新する

package.jsonとcloudbuild.yamlを更新

Cloud BuildでFirebase Hostingのデプロイを行う

リポジトリへのpush以外をトリガーにしたい場合に使用

Firebase HostingのデプロイをWebhook(API)経由で行う

デプロイボタンが作れるようになった

CloudRunでnode.jsを動かす

リポジトリにpushしたらCloudRun上に自動デプロイ

IPv6 IPoE環境で自宅のRaspberryPiにsshできるようにする

GCPにssh port forwardingすることで実現できた