リポジトリから継続的にデプロイする

Git リポジトリにソースコードまたは関数があり、ビルドを自動化してリポジトリから継続的デプロイを設定する場合は、Cloud Run コンソールで Cloud Build または Developer Connect を使用できます。

この設定を行うと、Cloud Run は Cloud Build トリガーを使用して、新しい commit が Git リポジトリの特定のブランチに push されるたびにコードを自動的にビルドしてデプロイします。Cloud Run にデプロイすると、サービスの Google Cloud コンソールにソース リポジトリ情報が表示されます。

Cloud Run コンソールで次の操作を行います。

あるいは、Cloud Deploy を使用して継続的デリバリー パイプラインを設定し、Cloud Run サービスを複数の環境にデプロイすることもできます。

始める前に

  • Git リポジトリに Dockerfile が含まれているか、コードベースが Google Cloud の Buildpack でサポートされている言語のいずれかで記述されている必要があります。
  • Cloud Build API を有効にします(まだ有効になっていない場合)。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(roles/owner)を通じてこの権限がすでに付与されている可能性があります。それ以外の場合は、Service Usage 管理者ロール(roles/serviceusage.serviceUsageAdmin)を通じてこの権限を取得できます。ロールを付与する方法を確認する。

    API の有効化

  • Developer Connect オプションを選択した場合は、Developer Connect API を有効にします。

    API を有効化

必要なロール

Cloud Build または Developer Connect を使用して Git から Cloud Run サービスをデプロイするために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。

ビルドを実行するサービス アカウントには、次のロールが必要です。

Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスがGoogle Cloud APIs(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。

Cloud Run コンソールを使用して継続的デプロイを設定する

この手順は、新しいサービスまたは既存のサービスのどちらで継続的デプロイを設定するかによって若干異なります。該当するタブをクリックして詳細をご覧ください。

新しいサービス

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. [リポジトリを接続] をクリックして、[サービスの作成] フォームを表示します。

  3. [Cloud Build] または [Developer Connect] を選択します。

    1. [Cloud Build] を選択した場合は、Cloud Build の設定をご覧ください。

    2. [Developer Connect] を選択した場合は、Developer Connect で設定するをご覧ください。

既存のサービス

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. サービスリストでサービスを見つけてクリックします。

  3. [ソース] タブをクリックします。

  4. [リポジトリに接続] をクリックし、Cloud Build の設定の手順に沿って操作します。

Cloud Build を設定

[Cloud Build の設定] ペインで、次の操作を行います。

  1. リストからリポジトリを選択します。リポジトリのリストの読み込みには少し時間がかかります。画面上の手順に沿って操作し、[次へ] をクリックします。

    GitHub がデフォルトのリポジトリ プロバイダです。まだ認証されていない場合は、[認証] をクリックして画面の指示に従います。リポジトリの接続には、Cloud Build GitHub アプリを使用します。

    リポジトリが見つからない場合は、[接続されたリポジトリを管理します] リンクをクリックします。手順に沿って、リポジトリに Cloud Build へのアクセス権を付与します。

  2. [ビルド構成] ステップで、次のオプションを入力します。

    • ブランチ

      • トリガーの実行時に使用するソースを指定します。ここには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 です。デフォルトの動作を使用する場合は、このフィールドを空白のままにします。
        • [関数ターゲット](関数デプロイの場合のみ)に、呼び出す関数を入力します。それ以外の場合は、空欄のままにしてください。
  3. [保存] をクリックします。

  4. ページが再読み込みされ、[サービスの作成] フォームに戻ります。

  5. [ソース リポジトリ] セクションで、選択した設定を確認します。

  6. [構成] でフォームの残りの部分を入力します。

  7. [作成] をクリックします。

    [サービスの詳細] ページにリダイレクトされます。このページで、リポジトリからのビルドとデプロイの設定の進行状況を追跡できます。

すべての手順が完了したら、次のことができます。

  • Cloud Run コンソールで [リポジトリ設定を編集] をクリックして、Cloud Build コンソールで Cloud Build トリガーを編集します。
  • [リポジトリからビルドしてデプロイしています] ステップの [ログ] リンクをクリックして、ビルド履歴を表示します。
  • [リビジョンの詳細] セクションでソースの詳細を確認します。

継続的デプロイを手動で設定する

UI ではなく手動で行う必要がある場合は、継続的デプロイを手動で設定するをご覧ください。

既存の Cloud Build ビルドトリガーを Cloud Run サービスに関連付ける

既存の Cloud Build トリガーがある場合は、Cloud Run サービスにラベルを追加して、そのトリガーをサービスに関連付けることができます。

Cloud Run コンソールでラベルを追加するには:

  1. Google Cloud コンソールで、[Cloud Run] ページに移動します。

    Cloud Run に移動

  2. サービスの横にあるチェックボックスをオンにします。

  3. ページ上部の [ラベル] をクリックして、[ラベル] ペインを開きます。

  4. キーとして gcb-trigger-id を使用し、値として Cloud Build ビルドトリガーの(トリガー名ではなく)固有識別子を設定したラベルを追加します。gcb-trigger-id キーがすでに存在する場合は、値を変更します。ラベルの設定については、ラベルを設定または変更するをご覧ください。

Developer Connect で設定

[Developer Connect で設定] ペインで、次の操作を行います。

  1. リポジトリを選択し、[次へ] をクリックします。

    選択するリポジトリが表示されない場合は、[新しいリポジトリをリンク] をクリックして、[Developer Connect 経由で新しいリポジトリをリンクする] ペインを開きます。該当するタブをクリックして、ソースコード管理プロバイダへの接続の詳細をご覧ください。

    GitHub

    [GitHub]、[GitHub Enterprise Cloud]、[GitHub Enterprise] オプションで、[接続] をクリックします。

    ダイアログが表示されない場合は、ポップアップ ブロック機能のあるブラウザ プラグインをオフにし、ブラウザ設定でポップアップが許可されていることを確認してください。たとえば、Chrome で ポップアップを許可する手順は次のとおりです。

    次の手順に沿って、GitHub アカウントに対する権限を付与し、リポジトリにリンクします。ウェブブラウザに表示されるプロンプトは、GitHub アカウントに Cloud Run GitHub アプリがすでにインストールされているかどうかによって異なります。

    Cloud Run ダイアログで、次の操作を行います。

    GitHub アカウントのリストが表示された場合は、次の手順に沿ってアプリをインストールし、リポジトリをリンクします。

    1. 使用する GitHub アカウントを選択します。

    2. アクセス権を付与するリポジトリを 1 つ以上選択します。

    既存のアプリのインストールを再利用するよう求めるメッセージが表示された場合は、次の手順に沿ってアプリを構成する場所を選択します。

    1. [GitHub アカウント] をクリックして、Google Cloud Run アプリがインストールされているアカウントを表示します。使用するアカウントが表示されたら、[確認] をクリックして選択します。

    2. 使用するアカウントが表示されない場合は、次の操作を行います。

      1. [GitHub アプリを別の GitHub アカウントにインストールする] を選択し、[確認] をクリックします。

      2. GitHub の手順に沿って、アプリのインストールを許可します。

      3. アクセス権を付与するリポジトリを 1 つ以上選択します。

    ダイアログが閉じると、アプリのインストールは完了です。

    GitLab

    [GitLab] オプションの場合:

    1. [個人用アクセス トークン] セクションで、アカウントのトークンを入力します。

      • API アクセス トークン: api スコープの個人用アクセス トークンを入力します。
      • Read API アクセス トークン: read_api スコープを持つ個人用アクセス トークンを入力します。

      GitLab トークンが有効な状態を維持する責任はお客様にあります。トークンの作成者または管理者が別途指定しない限り、GitLab トークンの最大有効期間は 365 日です。トークンの有効期限の設定と通知を管理する方法については、個人用アクセス トークンに関する GitLab のドキュメントをご覧ください。

      詳細については、GitLab の個人用アクセス トークンの有効期限に関するドキュメントをご覧ください。

    2. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

    3. 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。

    GitLab Enterprise エディション

    [GitLab Enterprise Edition] オプションの場合:

    1. [ホスト URL] に、接続するホストの URL を入力します。

    2. [個人用アクセス トークン] セクションで、アカウントのトークンを入力します。

      • API アクセス トークン: api スコープの個人用アクセス トークンを入力します。
      • Read API アクセス トークン: read_api スコープを持つ個人用アクセス トークンを入力します。

      GitLab トークンが有効な状態を維持する責任はお客様にあります。トークンの作成者または管理者が別途指定しない限り、GitLab トークンの最大有効期間は 365 日です。トークンの有効期限の設定と通知を管理する方法については、個人用アクセス トークンに関する GitLab のドキュメントをご覧ください。

      詳細については、GitLab の個人用アクセス トークンの有効期限に関するドキュメントをご覧ください。

    3. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

    4. 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。

    Bitbucket

    Bitbucket Cloud オプションの場合:

    1. [ワークスペース] に、Bitbucket Cloud ワークスペース ID を入力します。

    2. [アクセス トークン] セクションに、Bitbucket のアクセス トークンを入力します。

    3. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

    4. 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。

    Bitbucket データセンター

    [Bitbucket データセンター] オプションの場合:

    1. [ホスト URL] に、接続する Bitbucket データセンター ホストの URL を入力します。

    2. [アクセス トークン] セクションに、Bitbucket Cloud アクセス トークンを入力します。

      • 管理者アクセス トークン: リポジトリ管理者スコープ アクセスを持つトークンを入力します。

      • 読み取りアクセス トークン: リポジトリ読み取りスコープ アクセスを持つトークンを入力します。

    3. [詳細を表示] をクリックして、省略可能な構成設定を表示します。

    4. 省略可: [暗号化] セクションで、 CMEK 鍵を選択して、Cloud Run が作成する Secret Manager シークレットを暗号化します。
  2. [接続] をクリックします。この処理には数秒かかることがあります。

  3. [ビルド構成] ステップで、次のオプションを入力します。

    • ブランチ

      • トリガーの実行時に使用するソースを指定します。ここには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 です。デフォルトの動作を使用する場合は、このフィールドを空白のままにします。
        • [関数ターゲット](関数デプロイの場合のみ)に、呼び出す関数を入力します。それ以外の場合は、空欄のままにしてください。
  4. [保存] をクリックします。

  5. [構成] でフォームの残りの部分を入力します。

  6. サービスの構成が完了したら、[作成] をクリックしてイメージを Cloud Run にデプロイし、デプロイの完了を待ちます。

  7. 表示された URL リンクをクリックして、デプロイしたサービスで一意の安定したエンドポイントを開きます。