This page shows you how to use Cloud Build to deploy a containerized application to Cloud Run.
Before you begin
- 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 Cloud project. Learn how to confirm that billing is enabled for your project.
- Enable the Cloud Build, Cloud Run, Artifact Registry, and Compute Engine APIs.
- Install and initialize the Cloud SDK.
Grant permissions
Cloud Build requires Cloud Run Admin and IAM Service Account User permissions before it can deploy an image to Cloud Run.
Open a terminal window.
Set environment variables to store your project ID and project number:
PROJECT_ID=$(gcloud config list --format='value(core.project)') PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
Grant the Cloud Run Admin role to the Cloud Build service account:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/run.admin
Grant the IAM Service Account User role to the Cloud Build service account for the Cloud Run runtime service account:
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
Deploy a prebuilt image
You can configure Cloud Build to deploy a prebuilt image that is stored in Artifact Registry to Cloud Run.
To deploy a prebuilt image:
Open a terminal window (if not already open).
Create a new directory named
helloworld
and navigate into it:mkdir helloworld cd helloworld
Create a file named
cloudbuild.yaml
with the following contents. This file is the Cloud Build config file. It contains instructions for Cloud Build to deploy the image namedus-docker.pkg.dev/cloudrun/container/hello
on the Cloud Run service namedcloudrunservice
.Deploy the image by running the following command:
gcloud builds submit --config cloudbuild.yaml
When the build is complete, you will see an output similar to the following:
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
You've just deployed the image hello
to Cloud Run.
Run the deployed image
Open the Cloud Run page in the Cloud Console:
Select your project and click Open.
You will see the Cloud Run Services page.
In the table, locate the row with the name cloudrunservice, and click cloudrunservice.
The Service details page for cloudrunservice is displayed.
To run the image that you deployed on cloudrunservice, click the URL:
What's next
- Learn how to build using Cloud Build.
- Learn how to create a basic build config file.
- Learn how to view build results.
- Learn about more ways to deploy to Cloud Run.
- Learn how to deploy to Google Kubernetes Engine.
- Read our resources about DevOps and explore our research program.