Cloud Build を使用して、コンテナ化されたアプリケーションを Cloud Run にデプロイする

このページでは、Cloud Build を使用してコンテナ化されたアプリケーションを Cloud Run にデプロイする方法について説明します。


このタスクを Cloud Shell エディタで直接行う際のガイダンスについては、「ガイドを表示」をクリックしてください。

ガイドを表示


始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Cloud Build, Cloud Run, Artifact Registry, and Compute Engine API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. Cloud Build, Cloud Run, Artifact Registry, and Compute Engine API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    gcloud init

権限を付与する

Cloud Build で Cloud Run にイメージをデプロイする前に、Cloud Run 管理者IAM サービス アカウント ユーザーの権限を付与する必要があります。

  1. ターミナル ウィンドウを開きます。

  2. プロジェクト ID とプロジェクト番号を格納する環境変数を設定します。

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Cloud Run 管理者役割を Cloud Build サービス アカウントに付与します。

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/run.admin
    
  4. IAM サービス アカウント ユーザー ロールを Cloud Run ランタイム サービス アカウントの Cloud Build サービス アカウントに付与します。

    gcloud iam service-accounts add-iam-policy-binding \
        $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

ビルド済みのイメージをデプロイする

Artifact Registry に格納されているビルド済みのイメージを Cloud Run にデプロイするように Cloud Build を構成できます。

ビルド済みのイメージをデプロイするには:

  1. ターミナル ウィンドウを開きます(まだ開いていない場合)。

  2. helloworld という名前で新しいディレクトリを作成し、そのディレクトリに移動します。

    mkdir helloworld
    cd helloworld
    
  3. 次の内容のファイルを cloudbuild.yaml という名前で作成します。これは Cloud Build 構成ファイルです。Cloud Build が、us-docker.pkg.dev/cloudrun/container/hello という名前のイメージを cloudrunservice という名前の Cloud Run サービスにデプロイする手順が含まれています。

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. 次のコマンドを実行して、イメージをデプロイします。

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

ビルドが完了すると、次のような出力が表示されます。

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

これで、イメージ hello が Cloud Run にデプロイされました。

デプロイされたイメージを実行する

  1. Google Cloud コンソールで [Cloud Run] ページを開きます。

    [Cloud Run] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

    [Cloud Run Services] ページが表示されます。

  3. テーブルで、cloudrunserviceという名前の行を見つけて、[cloudrunservice] をクリックします。

    cloudrunservice の [サービスの詳細] ページが表示されます。

  4. cloudrunservice にデプロイしたイメージを実行するには、次の URL をクリックします。

    Cloud Run の [サービスの詳細] ページのスクリーンショット

次のステップ