In this article, I would like to document how I deploy a Docker image to Google Cloud using Cloud Run.
Table of Contents
Build the docker image
Refer to my article Dockerizing a Node.js web application for developing a Node.js application and building a docker image.
Configure Google Cloud
Create a Google Cloud Project
If you have already created a project, you can skip this section and go directly to Configure a Google Cloud Project.
-
In Google Cloud Shell, perform the following steps:
-
Lists credentialed accounts and make sure the desired account is set active.
gcloud auth list
-
Create a project.
gcloud projects create PROJECT_ID
* *Replace PROJECT_ID with your desired project ID.*
-
Enable Billing in Google Cloud Console.
Configure a Google Cloud Project
-
List all projects.
gcloud projects list
-
Set the default project.
gcloud config set project PROJECT_ID
* *Replace PROJECT_ID with your project ID.*
-
Print the project ID.
echo $GOOGLE_CLOUD_PROJECT
-
Set the default zone if it is not set:
gcloud config set compute/zone COMPUTE_ZONE
* *Replace COMPUTE_ZONE with your compute zone, such as europe-west2-c.*
-
Set the default region if it is not set:
gcloud config set compute/region COMPUTE_REGION
* *Replace COMPUTE_REGION with your compute region, such as europe-west2.*
-
Show the configuration.
gcloud config list
-
Enable APIs in Google Cloud Shell.
-
Enable Cloud Run.
run.googleapis.com
-
Deploy to Google Cloud
Deployment
-
Submit the docker image to Container Registry.
gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/website
* *Replace PROJECT_ID with your project ID.*
-
List all container images in this project to verify that the docker image has been submitted successfully.
gcloud container images list
-
Deploy the Container Image to Cloud Run.
gcloud run deploy CONTAINER_NAME \ --image gcr.io/$GOOGLE_CLOUD_PROJECT/DOCKER_IMAGE_NAME:DOCKER_IMAGE_VERSION \ --platform managed \ --region GCR_REGION \ --allow-unauthenticated
* *Replace CONTAINER_NAME with the desired Container Name.*
* *Replace DOCKER_IMAGE_NAME with your docker image name.*
* *Replace DOCKER_IMAGE_VERSION with the version of your docker image name.*
* *Replace PROJECT_ID with your project ID.*
* *Replace GCR_REGION with your region, such as europe-west2.*
Here below is a working example:
```shell
gcloud run deploy portfolio-website \
--image gcr.io/$GOOGLE_CLOUD_PROJECT/website:latest \
--platform managed \
--region europe-west1 \
--allow-unauthenticated
```
Verification
- Check that the web application is running by opening URL of the Cloud Run Service in a web browser.
Top comments (0)