Skip to content

Latest commit

 

History

History
77 lines (56 loc) · 2.27 KB

README.md

File metadata and controls

77 lines (56 loc) · 2.27 KB

Deploy

Google Cloud Run

An example of deploying a custom Docker image into Google Cloud Run service using TypeScript. Our image builds a simple HelloWorld web application in Ruby. You may change it to any language and runtime that can run on Linux and serve HTTP traffic.

Prerequisites

  1. Ensure you have the latest Node.js and NPM
  2. Install the Pulumi CLI
  3. Configure Pulumi to access your GCP account
  4. Install Docker
  5. Enable Docker to deploy to Google Container Registry with gcloud auth configure-docker

Running the App

  1. Restore NPM dependencies:

    $ npm install
    
  2. Create a new stack:

    $ pulumi stack init dev
    
  3. Configure your GCP project and region:

    $ pulumi config set gcp:project <projectname> 
    $ pulumi config set gcp:region <region>
    
  4. Run pulumi up to preview and deploy changes:

    $ pulumi up
    Previewing update (dev):
    ...
    
    Updating (dev):
        Type                       Name              Status      
    +   pulumi:pulumi:Stack        gcp-cloudrun-dev  created     
    +   ├─ docker:image:Image      ruby-app          created     
    +   ├─ gcp:projects:Service    EnableCloudRun    created     
    +   ├─ gcp:cloudrun:Service    hello             created     
    +   ├─ gcp:cloudrun:Service    ruby              created     
    +   ├─ gcp:cloudrun:IamMember  hello-everyone    created     
    +   └─ gcp:cloudrun:IamMember  ruby-everyone     created     
    
    Outputs:
        helloUrl: "https://hello-a28eea2-q1wszdxb2b-ew.a.run.app"
        rubyUrl : "https://ruby-420a973-q1wszdxb2b-ew.a.run.app"
    
    Resources:
        + 7 created
    
    Duration: 3m37s
    
  5. Check the deployed Cloud Run endpoint:

    $ curl "$(pulumi stack output rubyUrl)"
    Hello Pulumi!
    
  6. Clean up your GCP and Pulumi resources:

    $ pulumi destroy
    ...
    $ pulumi stack rm dev
    ...