Cloud Build を使用して、コンテナ化されたアプリケーションを Cloud Run にデプロイ
このページでは、Cloud Build を使用してコンテナ化されたアプリケーションを Cloud Run にデプロイする方法について説明します。
このタスクを Cloud Shell エディタで直接行う際のガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
権限を付与する
Cloud Build で Cloud Run にイメージをデプロイする前に、Cloud Run 管理者と IAM サービス アカウント ユーザーの権限を付与する必要があります。
ターミナル ウィンドウを開きます。
プロジェクト ID とプロジェクト番号を格納する環境変数を設定します。
PROJECT_ID=$(gcloud config list --format='value(core.project)') PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
Cloud Run 管理者ロールを Cloud Build サービス アカウントに付与します。
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/run.admin
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 を構成できます。
ビルド済みのイメージをデプロイするには:
ターミナル ウィンドウを開きます(まだ開いていない場合)。
helloworld
という名前で新しいディレクトリを作成し、そのディレクトリに移動します。mkdir helloworld cd helloworld
次の内容のファイルを
cloudbuild.yaml
という名前で作成します。これは Cloud Build 構成ファイルです。Cloud Build が、us-docker.pkg.dev/cloudrun/container/hello
という名前のイメージをcloudrunservice
という名前の Cloud Run サービスにデプロイする手順が含まれています。次のコマンドを実行して、イメージをデプロイします。
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 にデプロイされました。
デプロイされたイメージを実行する
Google Cloud コンソールで [Cloud Run] ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
[Cloud Run Services] ページが表示されます。
テーブルで、cloudrunserviceという名前の行を見つけて、[cloudrunservice] をクリックします。
cloudrunservice の [サービスの詳細] ページが表示されます。
cloudrunservice にデプロイしたイメージを実行するには、次の URL をクリックします。