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