Cloud Build を使用してビルドと Cloud Run へのデプロイを自動化するには、Cloud Build トリガーを使用します。これにより、新しい commit が Git リポジトリの特定のブランチに push されると自動的にコードがビルドされデプロイされるようになります。例については、テンプレート リポジトリを作成し、git から継続的にデプロイするのクイックスタートをご覧ください。
Cloud Build トリガーを使用してコンテナをビルドすると、Cloud Run へのデプロイ後に、サービスの Google Cloud コンソールにソース リポジトリ情報が表示されます。
あるいは、Cloud Deploy を使用して継続的デリバリー パイプラインを設定し、Cloud Run サービスを複数の環境にデプロイすることもできます。
始める前に
- Git リポジトリに
Dockerfile
が含まれているか、コードベースが Google Cloud の Buildpack でサポートされている言語のいずれかで記述されている必要があります。 -
Enable the Cloud Build API.
必要なロール
Cloud Build を使用して Git から Cloud Run サービスをデプロイするために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Artifact Registry 管理者(
roles/artifactregistry.admin
) -
Cloud Build 編集者(
roles/cloudbuild.builds.editor
) -
Cloud Run デベロッパー(
roles/run.developer
) -
サービス アカウント ユーザー(
roles/iam.serviceAccountUser
) -
Service Usage 管理者 (
roles/serviceusage.serviceUsageAdmin
)
ビルドを実行するサービス アカウントには、次のロールが必要です。
- Cloud Build サービス アカウント(
roles/cloudbuild.builds.builder
) - Cloud Run 管理者(
roles/run.admin
) - サービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスが Google Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
Cloud Run ユーザー インターフェースを使用して継続的デプロイを設定する
この手順は、新しいサービスまたは既存のサービスのどちらで継続的デプロイを設定するかによって若干異なります。該当するタブをクリックして詳細をご覧ください。
新しいサービス
新しいサービスをデプロイするの説明に沿って、新しいサービスを作成します。その際は、必ず [サービスの設定] ページの [ソース リポジトリから新しいリビジョンを継続的にデプロイする] を選択してください。
[サービスの設定] ページで [Cloud Build を設定] をクリックします。
GitHub がデフォルトのリポジトリ プロバイダです。まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。リポジトリの接続には、Cloud Build GitHub アプリを使用します。
[次へ] をクリックします。
[ビルド構成] ステップのオプションを入力します。
- ブランチ - トリガーの実行時に使用するソースを指定します。ここには正規表現を含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、[Dockerfile] を選択します。[ソースの場所] は、Dockerfile の場所と名前を示します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
それ以外の場合は、[Google Cloud Buildpacks] を選択します。Buildpack コンテキストを使用してディレクトリを指定して、サーバーを起動するコマンドを入力します(オプションでエントリポイントを指定することもできます)。例: Python の場合は
gunicorn -p :8080 main:app
、Java の場合はjava -jar target/myjar.jar
と入力します。デフォルトの動作を使用する場合は空白のままにします。
[保存] をクリックします。
選択した設定を確認します。
[作成] をクリックします。
[サービスの詳細] ページにリダイレクトされます。このページで、継続的デプロイの設定の進捗状況を追跡できます。
すべてのステップが完了したら、追加のオプションを確認します。
- 継続的デプロイの編集。
- ビルド履歴。
- [リビジョンの詳細] セクションに含まれるソースの詳細。
既存のサービス
サービスリストでサービスを見つけてクリックします。
[継続的デプロイの設定] をクリックします。
GitHub がデフォルトのリポジトリ プロバイダです。まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。リポジトリの接続には、Cloud Build GitHub アプリを使用します。
[次へ] をクリックします。
[ビルド構成] ステップのオプションを入力します。
- ブランチ - トリガーの実行時に使用するソースを指定します。ここには正規表現を含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、[Dockerfile] を選択します。[ソースの場所] は、Dockerfile の場所と名前を示します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
それ以外の場合は、[Google Cloud Buildpacks] を選択します。Buildpack コンテキストを使用してディレクトリを指定して、サーバーを起動するコマンドを入力します(オプションでエントリポイントを指定することもできます)。例: Python の場合は
gunicorn -p :8080 main:app
、Java の場合はjava -jar target/myjar.jar
と入力します。デフォルトの動作を使用する場合は空白のままにします。
[保存] をクリックします。
ページが再読み込みされて、継続的デプロイの設定の進行状況が表示されます。
すべてのステップが完了したら、追加のオプションを確認します。
- 継続的デプロイの編集。
- ビルド履歴。
- [リビジョンの詳細] セクションに含まれるソースの詳細。
継続的デプロイを手動で設定する
UI ではなく手動で行う必要がある場合は、継続的デプロイを手動で設定するをご覧ください。
既存の Cloud Build トリガーを Cloud Run サービスに関連付ける
既存の Cloud Build トリガーがある場合は、[サービスの詳細] ページでそのトリガーをサービスに関連付けて、Google Cloud コンソールの機能([継続的デプロイを編集] ボタンと [ビルド履歴] グラフ)を利用できます。
これを行うには、キーとして gcb-trigger-id を使用し、値として Cloud Build トリガーの(トリガー名ではなく)固有識別子を設定したラベルを追加します。ラベルの設定については、ラベルを設定または変更するをご覧ください。