Git リポジトリにソースコードまたは関数があり、ビルドを自動化してリポジトリから継続的デプロイを設定する場合は、Cloud Run コンソールで Cloud Build または Developer Connect を使用できます。
この設定を行うと、Cloud Run は Cloud Build トリガーを使用して、新しい commit が Git リポジトリの特定のブランチに push されるたびにコードを自動的にビルドしてデプロイします。Cloud Run にデプロイすると、サービスの Google Cloud コンソールにソース リポジトリ情報が表示されます。
Cloud Run コンソールの場合:
Cloud Build を選択すると、GitHub からの継続的デプロイを設定できます。例については、テンプレート リポジトリを作成し、git から継続的にデプロイするのクイックスタートをご覧ください。
[Developer Connect(プレビュー)] を選択すると、GitHub、GitLab、Bitbucket のリポジトリから継続的デプロイを設定できます。
あるいは、Cloud Deploy を使用して継続的デリバリー パイプラインを設定し、Cloud Run サービスを複数の環境にデプロイすることもできます。
始める前に
- Git リポジトリに
Dockerfileが含まれているか、コードベースが Google Cloud の Buildpack でサポートされている言語のいずれかで記述されている必要があります。 -
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. [Developer Connect] オプション(プレビュー)を選択した場合は、Developer Connect API を有効にします。
必要なロール
Cloud Build または Developer Connect を使用して 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) - Developer Connect オプション(プレビュー)を選択した場合は、次のようにします。
- Developer Connect 読み取りトークン アクセサー(
roles/developerconnect.readTokenAccessor) - GitLab または Bitbucket リポジトリに接続する場合: Secret Manager のシークレット アクセサー(
roles/secretmanager.secretAccessor)
- Developer Connect 読み取りトークン アクセサー(
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスがGoogle Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
Cloud Run コンソールを使用して継続的デプロイを設定する
この手順は、新しいサービスまたは既存のサービスのどちらで継続的デプロイを設定するかによって若干異なります。該当するタブをクリックして詳細をご覧ください。
新しいサービス
Google Cloud コンソールで、[Cloud Run] ページに移動します。
新しいサービスを作成する場合は、[リポジトリを接続] をクリックして [サービスの作成] フォームを表示します。
既存のサービスを変更する場合は、サービスリストでサービスを見つけてクリックします。[リポジトリに接続] をクリックします。
[Cloud Build] または [Developer Connect] を選択します。
[Cloud Build] を選択した場合は、Cloud Build の設定をご覧ください。
[Developer Connect] を選択した場合は、Developer Connect で設定するをご覧ください。
既存のサービス
Google Cloud コンソールで、[Cloud Run] ページに移動します。
サービスリストでサービスを見つけてクリックします。
[リポジトリに接続] をクリックし、Cloud Build の設定の手順に沿って操作します。
Cloud Build を設定
[Cloud Build の設定] ペインで、次の操作を行います。
リストからリポジトリを選択します。リポジトリのリストの読み込みには少し時間がかかります。プロンプトに沿って操作し、[次へ] をクリックします。
GitHub がデフォルトのリポジトリ プロバイダです。まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。リポジトリの接続には、Cloud Build GitHub アプリを使用します。
リポジトリが見つからない場合は、[接続されたリポジトリを管理します] リンクをクリックします。手順に沿って、リポジトリに Cloud Build へのアクセス権を付与します。
[ビルド構成] ステップで、次のオプションを入力します。
ブランチ
- トリガーの実行時に使用するソースを指定します。ここにはregexを含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Dockerfile: Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、このオプションを選択します。
- [ソースの場所] で、Dockerfile の場所と名前を指定します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
Go、Node.js、Python、Java、.NET Core、Ruby、PHP(Google Cloud の Buildpacks を使用): リポジトリを Buildpacks を使用してビルドする場合は、このオプションを選択します。
- [ビルド コンテキストのディレクトリ] で、ディレクトリを指定します。
- [エントリポイント](省略可)で、サーバーを起動するコマンドを指定します。たとえば、Python の場合は
gunicorn -p :8080 main:app、Java の場合はjava -jar target/myjar.jarと入力します。デフォルトの動作を使用する場合は、このフィールドを空白のままにします。 - [関数ターゲット](関数デプロイの場合のみ)に、呼び出す関数を入力します。それ以外の場合は、空欄のままにしてください。
[保存] をクリックします。
ページが再読み込みされ、[サービスの作成] フォームに戻ります。
[ソース リポジトリ] セクションで選択した設定を確認します。
[Configure] の残りのフォームに記入します。
[作成] をクリックします。
[サービスの詳細] ページにリダイレクトされます。このページで、リポジトリからのビルドとデプロイの設定の進行状況を追跡できます。
すべての手順が完了すると、次のことができるようになります。
- Cloud Run コンソールで [リポジトリ設定を編集] をクリックして、Cloud Build コンソールで Cloud Build トリガーを編集します。
- [リポジトリからのビルドとデプロイ] ステップの [ログ] リンクをクリックして、ビルド履歴を表示します。
- [リビジョンの詳細] セクションでソースの詳細を確認します。
継続的デプロイを手動で設定する
UI ではなく手動で行う必要がある場合は、継続的デプロイを手動で設定するをご覧ください。
既存の Cloud Build トリガーを Cloud Run サービスに関連付ける
既存の Cloud Build トリガーがある場合は、Cloud Run サービスにラベルを追加して、そのトリガーをサービスに関連付けることができます。
Cloud Run コンソールでラベルを追加するには:
Google Cloud コンソールで、[Cloud Run] ページに移動します。
サービスを選択します。
選択したサービスについて、ページ上部の [ラベル] をクリックして、[ラベル] ペインを開きます。
キーとして gcb-trigger-id を使用し、値として Cloud Build トリガーの(トリガー名ではなく)固有識別子を設定したラベルを追加します。gcb-trigger-id キーがすでに存在する場合は、値を変更します。ラベルの設定については、ラベルを設定または変更するをご覧ください。
Developer Connect で設定
[Developer Connect で設定] ペインで、次の操作を行います。
リポジトリを選択し、[次へ] をクリックします。
選択するリポジトリが表示されない場合は、[新しいリポジトリをリンク] をクリックして、[Developer Connect 経由で新しいリポジトリをリンクする] ペインを開きます。適切なタブをクリックして、ソースコード管理プロバイダのいずれかに接続する方法の詳細を確認します。
GitHub
[GitHub]、[GitHub Enterprise Cloud]、[GitHub Enterprise] オプションで、[接続] をクリックします。
ダイアログが表示されない場合は、ポップアップ ブロック機能のあるブラウザ プラグインを無効にし、ブラウザの設定でポップアップが許可されていることを確認します。たとえば、Chrome で ポップアップを許可する手順に沿って操作します。
次の手順に沿って、GitHub アカウントに対する権限を付与し、リポジトリにリンクします。ウェブブラウザに表示されるプロンプトは、GitHub アカウントに Cloud Run GitHub アプリがすでにインストールされているかどうかによって異なります。
Cloud Run ダイアログで、次の操作を行います。
GitHub アカウントのリストが表示された場合は、次の手順に沿ってアプリをインストールし、リポジトリをリンクします。
使用する GitHub アカウントを選択します。
アクセス権を付与するリポジトリを 1 つ以上選択します。
既存のアプリのインストールを再利用するよう求めるメッセージが表示された場合は、次の手順に沿ってアプリを構成する場所を選択します。
[GitHub アカウント] をクリックして、Google Cloud Run アプリがインストールされているアカウントを表示します。使用するアカウントが表示されたら、[確認] をクリックして選択します。
使用するアカウントが表示されない場合は、次の操作を行います。
[GitHub アプリを別の GitHub アカウントにインストールする] を選択し、[確認] をクリックします。
GitHub の手順に沿って、アプリのインストールを許可します。
アクセス権を付与するリポジトリを 1 つ以上選択します。
ダイアログが閉じると、アプリのインストールが完了します。
GitLab
[GitLab] オプションの場合:
-
[個人用アクセス トークン] セクションで、アカウントのトークンを入力します。
- API アクセス トークン:
apiスコープの個人用アクセス トークンを入力します。 - Read API アクセス トークン:
read_apiスコープの個人用アクセス トークンを入力します。
GitLab トークンが有効な状態を維持する責任はお客様にあります。トークン作成者または管理者が別途指定しない限り、GitLab トークンの最大有効期間は 365 日です。トークンの有効期限の設定と通知を管理する方法については、個人用アクセス トークンに関する GitLab のドキュメントをご覧ください。
詳細については、GitLab の個人用アクセス トークンの有効期限に関するドキュメントをご覧ください。
- API アクセス トークン:
[詳細を表示] をクリックすると、オプションの構成設定が表示されます。
- 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。
GitLab Enterprise エディション
[GitLab Enterprise Edition] オプションの場合:
[ホスト URL] に、接続するホストの URL を入力します。
-
[個人用アクセス トークン] セクションで、アカウントのトークンを入力します。
- API アクセス トークン:
apiスコープの個人用アクセス トークンを入力します。 - Read API アクセス トークン:
read_apiスコープの個人用アクセス トークンを入力します。
GitLab トークンが有効な状態を維持する責任はお客様にあります。トークン作成者または管理者が別途指定しない限り、GitLab トークンの最大有効期間は 365 日です。トークンの有効期限の設定と通知を管理する方法については、個人用アクセス トークンに関する GitLab のドキュメントをご覧ください。
詳細については、GitLab の個人用アクセス トークンの有効期限に関するドキュメントをご覧ください。
- API アクセス トークン:
[詳細を表示] をクリックすると、省略可能な構成設定が表示されます。
- 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。
Bitbucket
Bitbucket Cloud オプションの場合:
[ワークスペース] に、Bitbucket Cloud ワークスペース ID を入力します。
[アクセス トークン] セクションで、Bitbucket アクセス トークンを入力します。
- 承認者アクセス トークン: 承認者アクセス トークンを入力します。
- 読み取りアクセス トークン: 読み取りアクセス トークンを入力します。
[詳細を表示] をクリックすると、省略可能な構成設定が表示されます。
- 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。
Bitbucket データセンター
[Bitbucket データセンター] オプションの場合:
[ホスト URL] に、接続する Bitbucket データセンター ホストの URL を入力します。
[アクセス トークン] セクションに、Bitbucket Cloud アクセス トークンを入力します。
管理者アクセス トークン: リポジトリ管理者スコープ アクセスを持つトークンを入力します。
読み取りアクセス トークン: リポジトリ読み取りスコープ アクセスを持つトークンを入力します。
[詳細を表示] をクリックすると、オプションの構成設定が表示されます。
- 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。
[接続] をクリックします。この処理には数秒かかることがあります。
[ビルド構成] ステップで、次のオプションを入力します。
ブランチ
- トリガーの実行時に使用するソースを指定します。ここにはregexを含めることができます。一致したブランチが自動的に検証され、入力の下に示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
Dockerfile: Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、このオプションを選択します。
- [ソースの場所] で、Dockerfile の場所と名前を指定します。このディレクトリが Docker ビルド コンテキストとして使用されます。すべてのパスは、現在のディレクトリを基準とした相対パスにする必要があります。
Go、Node.js、Python、Java、.NET Core、Ruby、PHP(Google Cloud の Buildpacks を使用): リポジトリを Buildpacks を使用してビルドする場合は、このオプションを選択します。
- [ビルド コンテキストのディレクトリ] で、ディレクトリを指定します。
- [エントリポイント](省略可)に、サーバーを起動するコマンドを入力します。たとえば、Python の場合は
gunicorn -p :8080 main:app、Java の場合はjava -jar target/myjar.jarと入力します。デフォルトの動作を使用する場合は、このフィールドを空白のままにします。 - [関数ターゲット](関数デプロイの場合のみ)に、呼び出す関数を入力します。それ以外の場合は、空欄のままにしてください。
[保存] をクリックします。
[Configure] の残りのフォームに記入します。
サービスの構成が完了したら、[作成] をクリックしてイメージを Cloud Run にデプロイし、デプロイの完了を待ちます。
表示された URL リンクをクリックして、デプロイしたサービスで一意の安定したエンドポイントを開きます。