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

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


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

ガイドを表示


始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    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 の [サービスの詳細] ページのスクリーンショット

次のステップ