Deploy a Docker image to Google Cloud using Cloud Run

Photo by Quino Al on Unsplash

Deploy a Docker image to Google Cloud using Cloud Run

·

2 min read

In this article, I would like to document how I deploy a Docker image to Google Cloud using Cloud Run.

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.

  1. In Google Cloud Shell, perform the following steps:

    1. Lists credentialed accounts and make sure the desired account is set active.

       gcloud auth list
      
    2. Create a project.

       gcloud projects create PROJECT_ID
      
      • Replace PROJECT_ID with your desired project ID.
  2. Enable Billing in Google Cloud Console.

Configure a Google Cloud Project

  1. List all projects.

     gcloud projects list
    
  2. Set the default project.

     gcloud config set project PROJECT_ID
    
    • Replace PROJECT_ID with your project ID.
  3. Print the project ID.

     echo $GOOGLE_CLOUD_PROJECT
    
  4. 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.
  5. 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.
  6. Show the configuration.

     gcloud config list
    
  7. Enable APIs in Google Cloud Shell.

    1. Enable Cloud Run.

       run.googleapis.com
      

Deploy to Google Cloud

Deployment

  1. Submit the docker image to Container Registry.

     gcloud builds submit --tag gcr.io/$GOOGLE_CLOUD_PROJECT/website
    
    • Replace PROJECT_ID with your project ID.
  2. List all container images in this project to verify that the docker image has been submitted successfully.

     gcloud container images list
    
  3. 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:

     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.

    Check Cloud Run URL in GCP

    Verify docker deployment in GCP

References

  1. Source code in GitHub
  2. Live demo at Google Cloud