BETA

CloudRunで走らせるアプリケーションをCloudBuildでデプロイ自動化

投稿日:2019-09-19
最終更新:2020-02-17

デプロイの自動化は大好きなので、あいも変わらずCloud Runで走らせるプロジェクトでもCloudBuildを使って自動化をしました。

環境

アプリケーション:Ruby
DB:MySQL
ソースコード:Bitbucket

手順

  1. CloudBuildにて新しいビルドトリガーをつくる。
     - ソース:bitbucketから取得
     - トリガーのタイプ:ブランチ
     - ブランチ:^master$ (masterブランチへのプッシュのみ拾う)
     - ビルド設定:Cloud Build 構成ファイルでファイル名はCloudbuild.yaml (デフォルト)

  2. アプリケーション内にCloudbuild.yamlファイルを作成する。
     ソースコードはこんな感じ。CLoudSQLに繋ぐとか(--add-cloudsql-instances)、権限チェックしないとか(--allow-unauthenticated)はオプショナル

 steps:  
 - name: 'gcr.io/cloud-builders/docker'     //docker buildしてイメージを作成。  
   args: ['build', '--tag=TAG:$REVISION_ID', '.']  
 - name: 'gcr.io/cloud-builders/docker'    //イメージをGoogle Container Registryにpush  
   args: ["push", "TAG:$REVISION_ID"]  
 - name: 'gcr.io/cloud-builders/gcloud'  // gcloudコマンドでCloud Runにデプロイ  
   args: ['beta', 'run', 'deploy', 'APPNAME','--platform', 'managed', '--image', 'TAG:$REVISION_ID', '--region' ,'REGION_NAME', '--allow-unauthenticated', '--add-cloudsql-instances', 'CLOUDSQL_INSTANCE']  
 timeout: 1200s  
  1. GCP上での権限の設定
    • CloudBuildでCloud Runを実行可能にする
    • [IAM]にて、cloudbuildのサービスアカウント(IAM内で cloudbuild でフィルタしたら見つかるはず)、に新しい権限として、[CloudRun] -> [Cloud Run 管理者]を付与
  2. [Project] -> [編集者]を付与

確認

設定が完了したら、CloudBuildの方で[トリガーを実行]をするのもよし、実際にソースコードをpushするのもよし。じきにビルドとプッシュ、デプロイが完了

参考

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

Tech memos

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう