Simple anctions workflow that takes your Dockerfile puts your iamge at gcr.
Fork from https://github.com/urcomputeringpal/actions-docker
REGISTRY=gcr.ioIMAGE=$GITHUB_REPOSITORY- (Expects a Google Cloud Project named after your GitHub username)
TAG=$GITHUB_SHADEFAULT_BRANCH_TAG=true
- If you haven't already, create a Google Cloud Project named after your GitHub username and follow the Container Registry Quickstart.
- Create a Service Account named after your GitHub repository.
- Add the Cloud Build Service Account role to this Service Account.
- Generate a key for this Service Account. Download a JSON key when prompted.
- Create a Secret on your repository named
GCLOUD_SERVICE_ACCOUNT_KEY(Settings > Secrets) with the contents of:
# Linux
cat path-to/key.json | base64 -w 0
# MacOS
cat path-to/key.json | base64 -b 0- That's it! The GitHub Actions in this repository read this Secret and provide the correct values to the Docker daemon by default if present. If a Secret isn't present,
buildmay succeed butpushwill return an error!
Add the following to .github/workflows/docker.yaml:
name: Docker
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Docker Build
uses: plejon/actions-docker-build-and-push-gcr/build@master
- name: Docker Push
uses: plejon/actions-docker-build-and-push-gcr/push@master
env:
GCLOUD_SERVICE_ACCOUNT_KEY: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_KEY }}
ARG: --build-args clark=superman --build-args bruce=batman [...]
steps:
- uses: actions/checkout@v1
- name: Docker Build
uses: plejon/actions-docker-build-and-push-gcr/build@master
env:
IMAGE: my-project/my-image
GCLOUD_REGISTRY: eu.gcr.io
- name: Docker Push
uses: plejon/actions-docker-build-and-push-gcr/push@master
env:
IMAGE: my-project/my-image
GCLOUD_REGISTRY: eu.gcr.io
GCLOUD_SERVICE_ACCOUNT_KEY: ${{ secrets.GCLOUD_SERVICE_ACCOUNT_KEY }}