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のコールドスタートを避けるためにcurlで起こし続ける

定期リクエストを送っている間はコールドスタートは発生していないことが確認できた

GCP VMインスタンスのSSHポートを変更した

Network Internet Egress from Americas to EMEA

[Action Required] Internal error has affected services in Cloud Run that use Cloud Load Balancing

デフォルトURLで利用している場合は対応不要

GCPの無料インスタンスがF1-microからE2-Microに変わった

メールが来ていたのを見落としていた

ローカルディレクトリをCloud Storageに同期する

gsutil rsyncを利用した