Guide to deploy containers on Google Cloud Run

Google Cloud Run is one of the fast and scaleable solution for your API deployment over secure https connection and can be considered as first choice of every developer. Well firebase is for static websites, right? What if we can deploy Dynamic websites on firebase too? All you need is Cloud Run. Here, in this tutorial we will be showing you how you can deploy a simple website on Cloud Run. we will be using Flask for the website. First set-up your system with Google Cloud SDK. If you don’t know how to do it I recommend you read through their official documentation here.

Enable Cloud Run API

Next you need to enable the Cloud Run API.

  • Go to Marketplace in Cloud Console.
  • Then Search for Cloud Run API and enable it
  • After all these steps are done your page should look something like this

    CLOUD RUN API

Creating the project

Now the fun part begins. Let’s get to the code.

  • First create a project folder. In my case, I will be using the name Cloud Run Tutorial.
  • Go to the project folder and create a file called requirements.txt and add Flask==1.1.1 to the file.
  • Now create a python file called app.py and add the following lines to it.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    # importing Flask
    from flask import Flask
    app = Flask(__name__)
      
    # specifying the route
    @app.route('/')
    def hello_world():
        return 'Hello, World !'
      
    # this if block make sure that Flask app runs 
    # only if the file is executed directly
    if __name__ == '__main__':
        # exposing port 8080 of localhost
        app.run(host ='0.0.0.0', port = 8080)

    chevron_right

    
    

    If you have any confusion with the above code or want to learn more I prefer you read the flask documentation here.

  • Next create a Dockerfile with the name Dockerfile (without any extension) and add the following lines of code to it.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    #pulls python 3.7’s image from the docker hub
    FROM python:alpine3.7 
    #copies the flask app into the container
    COPY . /app
    #sets the working directory
    WORKDIR /app
    #install each library written in requirements.txt
    RUN pip install -r requirements.txt 
    #exposes port 8080
    EXPOSE 8080 
    #Entrypoint and CMD together just execute the command 
    #python app.py which runs this file
    ENTRYPOINT [ "python"
    CMD [ "app.py"

    chevron_right

    
    

Deploy the project

Now your project is ready to be deployed. To deploy it to Google Cloud Run, we need to containerize the project and the container to Google Container Registry (gcr).



Let’s see how it can be done.

  • Go to your project directory and open up the terminal.
  • Type gcloud init and select the GCP project in which you want to deploy the website and note the project id.
  • Type export project_id=THE_PROJECT_ID_NOTED.
  • Then type gcloud builds submit –tag gcr.io/${project_id}/helloworld:v1. This will take few minutes to complete.
  • Then type gcloud run deploy –image gcr.io/${project_id}/helloworld:v1 –platform managed
    • You will be prompted for the service name: press ENTER to accept the default name, helloworld.
    • You will be prompted for region: select the region of your choice.
    • You will be prompted to allow unauthenticated invocations: respond y

    Then wait for a few moments until the deployment is complete. On success, the command line displays the service URL.

  • Visit your deployed container by opening the service URL in a web browser.

Output-

If you have done all the steps correctly then, your Cloud Run page should look something like this
Final Cloud Run

Congratulations! You have just deployed an application packaged in a container image to Cloud Run. Cloud Run automatically and horizontally scales your container image to handle the received requests, then scales down when demand decreases.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.