Triggering a Docker image build on Google Cloud Build when pushing commits to a GitHub repository.
Create Google Cloud Build Configuration File
Create a cloudbuild.yaml
in the root folder:
steps:
- id: my-blog-cache-image
name: gcr.io/cloud-builders/docker
entrypoint: "/bin/bash"
args:
- "-c"
- |
docker pull gcr.io/$PROJECT_ID/my-blog:$BRANCH_NAME || exit 0
waitFor: ["-"]
- id: my-blog-build-image
name: gcr.io/cloud-builders/docker
args: [
"build",
"-t", "gcr.io/$PROJECT_ID/my-blog:$BRANCH_NAME",
"-t", "gcr.io/$PROJECT_ID/my-blog:$SHORT_SHA",
"docker/my-blog/",
]
waitFor: ["my-blog-cache-image"]
images:
- gcr.io/$PROJECT_ID/my-blog:$SHORT_SHA
If you want to push images to another region, simply rename gcr.io
to something like asia.gcr.io
.
ref:
https://cloud.google.com/build/docs/configuring-builds/create-basic-configuration
https://cloud.google.com/cloud-build/docs/configuring-builds/store-images-artifacts
Configure Google Cloud Build with Your GitHub Repository
Go to Google Cloud Dashboard > Google Cloud Build > Triggers > Create trigger
- Region: Global
- Event: Push to a branch
- Source: 1st Gen
- Repository:
- Connect new repository
- Source code management provider: GitHub (Cloud Build GitHub App)
- Install Google Cloud Build GitHub app
- Only select repositories
- Branch:
^main$
- Type: Autodetected
- Location: Repository
That's it, now you could push some commits to your GitHub repository.
ref:
https://console.cloud.google.com/cloud-build/triggers
https://console.cloud.google.com/cloud-build/builds