BETA

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

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

デプロイの自動化は大好きなので、あいも変わらず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:

  3. name: 'gcr.io/cloud-builders/docker' //docker buildしてイメージを作成。
    args: ['build', '--tag=TAG:$REVISION_ID', '.']
  4. name: 'gcr.io/cloud-builders/docker' //イメージをGoogle Container Registryにpush
    args: ["push", "TAG:$REVISION_ID"]
  5. 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 ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!