logo

GCP - Cloud Run

Auth

Build Locally

# Build an ARM64 version, if you want to test it on your mac.
$ docker buildx build . -t foo.com/my_image_arm64:0.1 --platform linux/arm64

# Build an AMD64 version to run on Cloud Run.
$ docker buildx build . -t foo.com/my_image_amd64:0.1 --platform linux/amd64

Run on macOS

This creates a ~/.config/gcloud/application_default_credentials.json.

$ gcloud auth application-default login

When running locally, mount the application_default_credentials.json we just created (-v for volume), and specify GOOGLE_APPLICATION_CREDENTIALS (-e for env):

$ docker run -v ~/.config/gcloud/application_default_credentials.json:/root/cred.json  -e GOOGLE_APPLICATION_CREDENTIALS=/root/cred.json foo.com/my_image_arm64:0.1

Upload to Artifact Registry

Assuming you selected us-west4 region:

Config:

$ gcloud auth configure-docker us-west4-docker.pkg.dev

To list artifact repositories:

$ gcloud artifacts repositories list --project=myproject

Tag and push

$ docker tag foo.com/my_image_amd64:0.1 \
us-west4-docker.pkg.dev/myproject/myrepo/my_image_amd64:0.1

$ docker push us-west4-docker.pkg.dev/myproject/myrepo/my_image_amd64:0.1

Run Job

Create Job

$ gcloud run jobs create my-job --region us-west4 --image us-west4-docker.pkg.dev/myproject/myrepo/my_image_amd64:0.1

Describe Job

$ gcloud run jobs describe my-job --region us-west4

Execute Job

$ gcloud run jobs execute my-job --region us-west4