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 コンソールから継続的デプロイを設定する
この手順は、新しいサービスまたは既存のサービスのどちらで 継続的デプロイを設定するかによって若干異なります。該当する タブをクリックして詳細をご覧ください。
新しいサービス
コンソールで、[Cloud Run] ページに移動します。 Google Cloud
新しいサービスを作成する場合は、[リポジトリを接続] をクリックして [サービスの作成] フォームを表示します。
既存のサービスを変更する場合は、サービスリストでサービスを見つけてクリックします。[リポジトリに接続] をクリックします。
[Cloud Build] または [Developer Connect] を選択します。
[Cloud Build] を選択した場合は、 Cloud Build を設定するをご覧ください。
[Developer Connect] を選択した場合は、 Developer Connect で設定するをご覧ください。
既存のサービス
コンソールで、[Cloud Run] ページに移動します。 Google Cloud
サービスリストでサービスを見つけてクリックします。
[リポジトリに接続] をクリックし、 Cloud Build を設定するの手順に沿って操作します。
Cloud Build を設定する
[Cloud Build の設定] ペインで、次の操作を行います。
リストからリポジトリを選択します。リポジトリのリストを読み込むには しばらく時間がかかります。プロンプトに従って [次へ] をクリックします。
GitHub がデフォルトのリポジトリ プロバイダです。まだ認証されていない場合は、 [**認証**] をクリックして画面の指示に従います。リポジトリの接続には 、Cloud Build GitHub アプリを使用します。
リポジトリが見つからない場合は、 [接続されたリポジトリを管理します] リンクをクリックします。手順に沿って、 リポジトリに Cloud Build へのアクセス権を付与します。
In the [Build Configuration] step, fill in the options:
ブランチ
- トリガーの実行時に使用する ソースを示します。ここにはregexを 含めることができます。一致したブランチが自動的に検証され、入力の下に 示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
[Dockerfile]: Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、このオプションを選択します。
- [ソースの場所] で、Dockerfile の場所と名前を指定します。このディレクトリが Docker ビルド コンテキストとして使用されます。 すべてのパスは、現在のディレクトリを基準とした相対パスである必要があります。
[**Go、Node.js、Python、Java、.NET Core、Ruby、PHP(Google Cloud の Buildpacks を使用)**]: Buildpack を使用してリポジトリをビルドする場合は、このオプションを選択します。
- In the [Build context directory] で、ディレクトリを指定します。
- In [エントリポイント](省略可)で、サーバーを起動するコマンドを入力します。たとえば、Python の場合は
gunicorn -p :8080 main:app、Java の場合はjava -jar target/myjar.jarです。デフォルトの動作を使用する場合は空白のままにします 。 - [関数ターゲット](関数デプロイの場合のみ)に、呼び出す 関数を入力します。それ以外の場合は、空欄のままにしてください。
[**保存**] をクリックします。
ページが再読み込みされ、[サービスの作成] フォームに戻ります。
[ソース リポジトリ] セクションで、選択した設定を確認します。
[構成] で、フォームの残りの部分を入力します。
[Create] をクリックします。
[サービスの詳細] ページにリダイレクトされます。このページで、リポジトリからのビルドとデプロイの設定の 進捗状況を追跡できます。
すべての手順が完了すると、次の操作を行えます。
- Cloud Run コンソールで [リポジトリ設定を編集] をクリックして、Cloud Build コンソールで Cloud Build トリガーを編集します。
- ビルド履歴を表示するには、 [ログ] リンクをクリックして、[リポジトリからのビルドとデプロイ] ステップに移動します。
- セクションでソースの詳細を表示します[リビジョンの詳細]。
継続的デプロイを手動で設定する
UI ではなく手動で行う必要がある場合は、継続的デプロイを手動で設定する をご覧ください。
既存の Cloud Build トリガーを Cloud Run サービスに関連付ける
既存の Cloud Build トリガーがある場合は、Cloud Run サービスにラベルを追加して、 サービスに関連付けることができます。
Cloud Run コンソールでラベルを追加するには:
コンソールで、[Cloud Run] ページに移動します。 Google Cloud
サービスを選択します。
選択したサービスで、ページ上部の [ラベル] をクリックして [ラベル] ペインを開きます。
キーとして 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 のドキュメントをご覧ください。
- API アクセス トークン:
[**詳細を表示**] をクリックして、省略可能な構成設定を表示します。
- 省略可: [暗号化] セクションで、Cloud Run が作成する Secret Manager の Secret を暗号化する [CMEK 鍵] を選択します。
GitLab Enterprise エディション
[GitLab Enterprise エディション] オプションの場合:
[**ホスト URL**] に、接続するホストの URL を入力します。
-
[個人用アクセス トークン] セクションに、アカウントの トークンを入力します。
- API アクセス トークン:
apiスコープの個人用アクセス トークンを入力します。 - Read API アクセス トークン:
read_apiスコープの個人用アクセス トークンを入力します。
GitLab トークンが有効であることを確認する必要があります。トークン作成者または管理者が別途指定しない限り、GitLab トークンの最大有効期間は 365 日です。トークンの有効期限 の設定と通知を管理する方法については、 個人用アクセス トークンに関する GitLab のドキュメントをご覧ください。
- API アクセス トークン:
[**詳細を表示**] をクリックして、省略可能な構成設定を表示します。
- 省略可: [暗号化] セクションで、Cloud Run が作成する Secret Manager の Secret を暗号化する [CMEK 鍵] を選択します。
Bitbucket
[Bitbucket Cloud] オプションの場合:
[**ワークスペース**] に、 Bitbucket Cloud ワークスペース ID を入力します。
[**アクセス トークン**] セクションに、Bitbucket アクセス トークンを入力します。
- 承認者アクセス トークン: 承認者アクセス トークンを入力します。
- 読み取りアクセス トークン: 読み取りアクセス トークンを入力します。
[**詳細を表示**] をクリックして、省略可能な構成設定を表示します。
- 省略可: [暗号化] セクションで、Cloud Run が作成する Secret Manager の Secret を暗号化する [CMEK 鍵] を選択します。
Bitbucket データセンター
[Bitbucket データセンター] オプションの場合:
[ホスト URL] に、接続する Bitbucket データセンター ホストの URL を入力します。
[**アクセス トークン**] セクションに、Bitbucket Cloud アクセス トークンを入力します。
管理者アクセス トークン: リポジトリ管理者 スコープ アクセスを持つトークンを入力します。
読み取りアクセス トークン: リポジトリ読み取り スコープ アクセスを持つトークンを入力します。
[**詳細を表示**] をクリックして、省略可能な構成設定を表示します。
- 省略可: [暗号化] セクションで、Cloud Run が作成する Secret Manager の Secret を暗号化する [CMEK 鍵] を選択します。
[Connect] をクリックします。この処理には数秒かかることがあります。
In the [Build Configuration] step, fill in the options:
ブランチ
- トリガーの実行時に使用する ソースを示します。ここにはregexを 含めることができます。一致したブランチが自動的に検証され、入力の下に 示されます。なお、ブランチが 1 つだけ一致した場合、作成後にトリガーが自動的に実行されます。
ビルドタイプ
[Dockerfile]: Docker を使用してリポジトリを作成し、そこに Dockerfile が含まれている場合は、このオプションを選択します。
- [ソースの場所] で、Dockerfile の場所と名前を指定します。このディレクトリが Docker ビルド コンテキストとして使用されます。 すべてのパスは、現在のディレクトリを基準とした相対パスである必要があります。
[**Go、Node.js、Python、Java、.NET Core、Ruby、PHP(Google Cloud の Buildpacks を使用)**]: Buildpack を使用してリポジトリをビルドする場合は、このオプションを選択します。
- In the [Build context directory] で、ディレクトリを指定します。
- In [エントリポイント](省略可)で、サーバーを起動するコマンドを入力します。たとえば、Python の場合は
gunicorn -p :8080 main:app、Java の場合はjava -jar target/myjar.jarです。デフォルトの動作を使用する場合は空白のままにします 。 - [関数ターゲット](関数デプロイの場合のみ)に、呼び出す 関数を入力します。それ以外の場合は、空欄のままにしてください。
[**保存**] をクリックします。
[構成] で、フォームの残りの部分を入力します。
サービスの構成が完了したら、[作成] をクリックして イメージを Cloud Run にデプロイし、デプロイの完了を待ちます。
表示された URL リンクをクリックして、デプロイしたサービスで一意の安定したエンドポイントを開きます。