From ae3af5222e5d111435fb6fb23d53b93810e20468 Mon Sep 17 00:00:00 2001 From: Daniel Bast <2790401+dbast@users.noreply.github.com> Date: Wed, 21 Apr 2021 19:43:50 +0200 Subject: [PATCH] Enable publishing to ghcr.io (Github container registry) --- .github/workflows/build.yml | 1 + .multi_arch_docker | 15 ++++++++++++--- README.md | 3 ++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0acece2..e8525be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -121,6 +121,7 @@ jobs: env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + GITHUB_GHCR_TOKEN: ${{ secrets.GITHUB_GHCR_TOKEN }} DOCKER_EMAIL: ${{ secrets.DOCKER_EMAIL }} DOCKER_BASE: ${{ secrets.DOCKER_USERNAME }}/shellcheck run: | diff --git a/.multi_arch_docker b/.multi_arch_docker index a9f7401..b460010 100755 --- a/.multi_arch_docker +++ b/.multi_arch_docker @@ -36,6 +36,11 @@ function multi_arch_docker::login_to_docker_hub() { echo "$DOCKER_PASSWORD" | docker login -u="$DOCKER_USERNAME" --password-stdin } +# Log in to Github container registry for deployment. +function multi_arch_docker::login_to_github_container_registry() { + echo "$GITHUB_GHCR_TOKEN" | docker login -u="$DOCKER_USERNAME" --password-stdin +} + # Run buildx build and push. Passed in arguments augment the command line. function multi_arch_docker::buildx() { mkdir -p /tmp/empty @@ -51,10 +56,13 @@ function multi_arch_docker::buildx() { # Build and push plain and alpine docker images for all tags. function multi_arch_docker::build_and_push_all() { + declare -a registries=("" "ghcr.io/") for tag in $TAGS; do - multi_arch_docker::buildx -t "$DOCKER_BASE:$tag" --build-arg "tag=$tag" - multi_arch_docker::buildx -t "$DOCKER_BASE-alpine:$tag" \ - --build-arg "tag=$tag" --target alpine + for registry in "${registries[@]}"; do + multi_arch_docker::buildx -t "${registry}$DOCKER_BASE:$tag" --build-arg "tag=$tag" + multi_arch_docker::buildx -t "${registry}$DOCKER_BASE-alpine:$tag" \ + --build-arg "tag=$tag" --target alpine + done done } @@ -101,6 +109,7 @@ function multi_arch_docker::main() { multi_arch_docker::install_docker_buildx multi_arch_docker::login_to_docker_hub + multi_arch_docker::login_to_github_container_registry multi_arch_docker::build_and_push_all multi_arch_docker::test_all } diff --git a/README.md b/README.md index fe16fb2..ab5d72c 100644 --- a/README.md +++ b/README.md @@ -210,10 +210,11 @@ From Snap Store: snap install --channel=edge shellcheck -From Docker Hub: +From Docker Hub / GitHub Container Registry: ```sh docker run --rm -v "$PWD:/mnt" koalaman/shellcheck:stable myscript +docker run --rm -v "$PWD:/mnt" ghcr.io/koalaman/shellcheck:stable myscript # Or :v0.4.7 for that version, or :latest for daily builds ```