I recently started working again with Github Actions and given the fact that I needed to send build arguments and secrets to the Dockerfile I started to look at all the alternatives available as those are not supported in this repo.
I found that the docker/build-push-action
works for pushing into the GHCR as well, so what was the biggest benefit of this action is now taken care somewhere else with more features and mainteinance. Therefore I suggest that you switch over to that one, I leave below a little snippet on how I used the action:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io/my-org
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
tags: |
ghcr.io/my-org/my-svc:latest
ghcr.io/my-org/my-svc:some-tag
build-args: |
"x=y"
"foo=bar"
secrets: |
"secret-id=${{secrets.SECRET_VALUE}}"
Github Action that builds and pushes a docker image to Github Container Registry.
jobs:
build-svc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
name: Checkout repository
- uses: pmorelli92/github-container-registry-build-push@2.2.1
name: Build and Publish latest service image
with:
github-push-secret: ${{secrets.GITHUB_TOKEN}}
docker-image-name: my-svc
docker-image-tag: latest # optional
dockerfile-path: Dockerfile # optional
build-context: . # optional
build-only: false # optional
docker-build-args: FOO=BAR,OTHER=VALUE # optional
I heavily inspired on gp-docker-action repository made by Pavel Alimpiev. This mentioned repo is pushing towards the GitHub Packages Docker Registry instead of the new GitHub Container Registry.