Stay organized with collections Save and categorize content based on your preferences.
This page describes how to deploy a new service or service revision to Cloud Run directly from source code using a single gcloud CLI command, gcloud run deploy
with the --source
flag. For an example walkthrough of deploying a Hello World service, see Deploy from source quickstarts.
--image
or --source
flags.
Behind the scenes, this command uses Google Cloud's buildpacks and Cloud Build to automatically build container images from your source code without having to install Docker on your machine or set up buildpacks or Cloud Build. That is, the single command described above does what would otherwise require the gcloud builds submit
and the gcloud run deploy
commands.
Note that source deployments use Artifact Registry to store built containers. If your project doesn't already have an Artifact Registry repository with the name cloud-run-source-deploy
in the region you are deploying to, this feature automatically creates an Artifact Registry repository with the name cloud-run-source-deploy
.
If a Dockerfile is present in the source code directory, the uploaded source code is built using that Dockerfile. If no Dockerfile is present in the source code directory, Google Cloud's buildpacks automatically detects the language you are using and fetches the dependencies of the code to make a production-ready container image, using a secure base image managed by Google.
By default, security fixes are only applied when the Cloud Run service is deployed. When you enable automatic security updates for a service, that service receives patches automatically with zero downtime. Learn more about
configuring security updates.
Supported languagesIn addition to sources with a Dockerfile, deploying from source supports the following languages:
Read more details about
supported language versions.
Limitations of this featuregcloud builds submit
, and then deploy the container image using, for example, gcloud run deploy --image
.etag
and Last-Modified
HTTP headers in your application.gcr.io/buildpacks/builder:latest
. If your preferred language or OS configuration is not available in latest
, use a specific builder to create an application image using your preferred builder.You can deploy your service from source using Kotlin and other JVM languages such as Java The language you use must conform to the following rules:
If you are under a domain restriction organization policy restricting unauthenticated invocations for your project, you will need to access your deployed service as described under Testing private services.
Enable the Cloud Run Admin API and the Cloud Build API:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com
After the Cloud Run Admin API is enabled, the Compute Engine default service account is automatically created.
You or your administrator must grant the deployer account and the Cloud Build service account the following IAM roles.
Click to view required roles for the deployer accountTo get the permissions that you need to build and deploy from source, ask your administrator to grant you the following IAM roles:
roles/run.sourceDeveloper
) on your projectroles/serviceusage.serviceUsageConsumer
) on your projectroles/iam.serviceAccountUser
) on the Cloud Run service identityCloud Build automatically uses the Compute Engine default service account as the default Cloud Build service account to build your source code and Cloud Run resource, unless you override this behavior. For Cloud Build to build your sources, ask your administrator to grant Cloud Run Builder (roles/run.builder
) to the Compute Engine default service account on your project:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Replace PROJECT_NUMBER
with your Google Cloud project number, and PROJECT_ID
with your Google Cloud project ID. For detailed instructions on how to find your project ID, and project number, see Creating and managing projects.
Granting the Cloud Run builder role to the Compute Engine default service account takes a couple of minutes to propagate.
Note:The iam.automaticIamGrantsForDefaultServiceAccounts
organization policy constraint prevents the Editor role from being automatically granted to default service accounts. If you created your organization after May 3, 2024, this constraint is enforced by default.
We strongly recommend that you enforce this constraint to disable the automatic role grant. If you disable the automatic role grant, you must decide which roles to grant to the default service accounts, and then grant these roles yourself.
If the default service account already has the Editor role, we recommend that you replace the Editor role with less permissive roles.To safely modify the service account's roles, use Policy Simulator to see the impact of the change, and then grant and revoke the appropriate roles.
For a list of IAM roles and permissions that are associated with Cloud Run, see Cloud Run IAM roles and Cloud Run IAM permissions. If your Cloud Run service interfaces with Google Cloud APIs, such as Cloud Client Libraries, see the service identity configuration guide. For more information about granting roles, see deployment permissions and manage access.
Deploy from sourceTo deploy from source code:
Change to your source directory. Note that the source directory doesn't require a Dockerfile, but if a Dockerfile is present it will be used.
Build and deploy your service:
gcloud run deploy SERVICE --source .Replace
SERVICE
with the name you want for your service.
Optionally, if your source code uses one of the supported language runtimes and you want to configure automatic base image updates for your runtime, specify the --automatic-updates
flag and the --base-image
flag with the base image for your service, for example nodejs22
.
Respond to any prompts to install required APIs by responding y
when prompted. You only need to do this once for a project. Respond to other prompts by supplying the platform and region, if you haven't set defaults for these as described in the setup page.
Wait for the build and deploy to complete. When finished, Cloud Run displays a success message.
After deployment, note that this service revision serves 100% of traffic.
Automating building from sourceAs a best practice for avoiding unversioned changes in local source, Google recommends that you automatically deploy when changes are pushed to your Git repository. To make this easier, you can connect and configure continuous deployment to your Cloud Run service. By connecting your GitHub repositories to Cloud Run, you can configure builds and deploy your repositories without writing Dockerfiles or build files.
To configure automated builds, set up automation as described in the
continuous builds page, making sure you choose the option for building source with buildpacks.
What's nextAfter you deploy a Cloud Run service, you can do the following:
Learn about the source deploy configurations:
You can automate the builds and deployments of your Cloud Run services using Cloud Build triggers:
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-09 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-09 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4