From e55801813e5db12b3c3a063651e9f4c2f6304436 Mon Sep 17 00:00:00 2001 From: Pau Rodriguez-Estivill Date: Fri, 4 Mar 2022 15:29:53 +0100 Subject: [PATCH] Add REGISTRY_PREFIX build variable --- .github/workflows/ci.yml | 6 +++-- BUILD.md | 8 +++---- docker-bake.hcl | 50 ++++++++++++++++++++++------------------ generate.sh | 36 ++++++++++++++++------------- publish.sh | 26 --------------------- 5 files changed, 55 insertions(+), 71 deletions(-) delete mode 100755 publish.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf14715..877d58c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -149,10 +149,12 @@ jobs: - name: Build images env: - BUILDREV: ${{ steps.vars.outputs.sha_short }} + REGISTRY_PREFIX: ${{ secrets.DOCKERHUB_USERNAME }}/ + BUILD_REVISION: ${{ steps.vars.outputs.sha_short }} run: docker buildx bake --pull - name: Push images env: - BUILDREV: ${{ steps.vars.outputs.sha_short }} + REGISTRY_PREFIX: ${{ secrets.DOCKERHUB_USERNAME }}/ + BUILD_REVISION: ${{ steps.vars.outputs.sha_short }} run: docker buildx bake --push diff --git a/BUILD.md b/BUILD.md index 3db0621..07461ac 100644 --- a/BUILD.md +++ b/BUILD.md @@ -25,7 +25,7 @@ docker buildx inspect --bootstrap In order to modify the image name or any other configurable parameter run the `generate.sh` script. ```sh -IMAGE_NAME="prodrigestivill/postgres-backup-local" ./generate.sh config.hcl +IMAGE_NAME="postgres-backup-local" ./generate.sh config.hcl ``` ### Build the images @@ -39,11 +39,11 @@ docker buildx bake --pull -f config.hcl In order to publish directly to the repository run this command instead: ```sh -docker buildx bake --pull --push -f config.hcl +REGISTRY_PREFIX="dockerhub_username/" docker buildx bake --pull --push -f config.hcl ``` -Also, optionally, it can also generate build revision tags from last git commit (like `./publish.sh` script does): +Also, optionally, it can also generate build revision tags from last git commit: ```sh -BUILDREV=$(git rev-parse --short HEAD) docker buildx bake --pull --push -f config.hcl +REGISTRY_PREFIX="dockerhub_username/" BUILD_REVISION=$(git rev-parse --short HEAD) docker buildx bake --pull --push -f config.hcl ``` diff --git a/docker-bake.hcl b/docker-bake.hcl index 64c1c65..6faefa3 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,7 +2,11 @@ group "default" { targets = ["debian-latest", "alpine-latest", "debian-13", "debian-12", "debian-11", "debian-10", "alpine-13", "alpine-12", "alpine-11", "alpine-10"] } -variable "BUILDREV" { +variable "REGISTRY_PREFIX" { + default = "" +} + +variable "BUILD_REVISION" { default = "" } @@ -21,9 +25,9 @@ target "debian-latest" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "14"} tags = [ - "prodrigestivill/postgres-backup-local:latest", - "prodrigestivill/postgres-backup-local:14", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:14-debian-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:latest", + "${REGISTRY_PREFIX}postgres-backup-local:14", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:14-debian-${BUILD_REVISION}" : "" ] } @@ -32,9 +36,9 @@ target "alpine-latest" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "14-alpine"} tags = [ - "prodrigestivill/postgres-backup-local:alpine", - "prodrigestivill/postgres-backup-local:14-alpine", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:14-alpine-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:alpine", + "${REGISTRY_PREFIX}postgres-backup-local:14-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:14-alpine-${BUILD_REVISION}" : "" ] } @@ -43,8 +47,8 @@ target "debian-13" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "13"} tags = [ - "prodrigestivill/postgres-backup-local:13", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:13-debian-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:13", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:13-debian-${BUILD_REVISION}" : "" ] } @@ -53,8 +57,8 @@ target "alpine-13" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "13-alpine"} tags = [ - "prodrigestivill/postgres-backup-local:13-alpine", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:13-alpine-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:13-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:13-alpine-${BUILD_REVISION}" : "" ] } @@ -63,8 +67,8 @@ target "debian-12" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "12"} tags = [ - "prodrigestivill/postgres-backup-local:12", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:12-debian-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:12", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:12-debian-${BUILD_REVISION}" : "" ] } @@ -73,8 +77,8 @@ target "alpine-12" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "12-alpine"} tags = [ - "prodrigestivill/postgres-backup-local:12-alpine", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:12-alpine-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:12-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:12-alpine-${BUILD_REVISION}" : "" ] } @@ -83,8 +87,8 @@ target "debian-11" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7"] args = {"BASETAG" = "11"} tags = [ - "prodrigestivill/postgres-backup-local:11", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:11-debian-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:11", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:11-debian-${BUILD_REVISION}" : "" ] } @@ -93,8 +97,8 @@ target "alpine-11" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "11-alpine"} tags = [ - "prodrigestivill/postgres-backup-local:11-alpine", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:11-alpine-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:11-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:11-alpine-${BUILD_REVISION}" : "" ] } @@ -103,8 +107,8 @@ target "debian-10" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7"] args = {"BASETAG" = "10"} tags = [ - "prodrigestivill/postgres-backup-local:10", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:10-debian-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:10", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:10-debian-${BUILD_REVISION}" : "" ] } @@ -113,7 +117,7 @@ target "alpine-10" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "10-alpine"} tags = [ - "prodrigestivill/postgres-backup-local:10-alpine", - notequal("", BUILDREV) ? "prodrigestivill/postgres-backup-local:10-alpine-${BUILDREV}" : "" + "${REGISTRY_PREFIX}postgres-backup-local:10-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:10-alpine-${BUILD_REVISION}" : "" ] } diff --git a/generate.sh b/generate.sh index 03e75d1..39f12e5 100755 --- a/generate.sh +++ b/generate.sh @@ -3,7 +3,7 @@ set -e DOCKER_BAKE_FILE=${1:-"docker-bake.hcl"} -IMAGE_NAME=${IMAGE_NAME:-"prodrigestivill/postgres-backup-local"} +IMAGE_NAME=${IMAGE_NAME:-"postgres-backup-local"} GOCRONVER="v0.0.10" MAIN_TAG="14" @@ -25,7 +25,11 @@ group "default" { targets = [$T] } -variable "BUILDREV" { +variable "REGISTRY_PREFIX" { + default = "" +} + +variable "BUILD_REVISION" { default = "" } @@ -44,9 +48,9 @@ target "debian-latest" { platforms = [$P] args = {"BASETAG" = "$MAIN_TAG"} tags = [ - "$IMAGE_NAME:latest", - "$IMAGE_NAME:$MAIN_TAG", - notequal("", BUILDREV) ? "$IMAGE_NAME:$MAIN_TAG-debian-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:latest", + "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -55,9 +59,9 @@ target "alpine-latest" { platforms = [$P] args = {"BASETAG" = "$MAIN_TAG-alpine"} tags = [ - "$IMAGE_NAME:alpine", - "$IMAGE_NAME:$MAIN_TAG-alpine", - notequal("", BUILDREV) ? "$IMAGE_NAME:$MAIN_TAG-alpine-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:alpine", + "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-alpine", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-alpine-\${BUILD_REVISION}" : "" ] } EOF @@ -69,8 +73,8 @@ target "debian-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG"} tags = [ - "$IMAGE_NAME:$TAG", - notequal("", BUILDREV) ? "$IMAGE_NAME:$TAG-debian-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -79,8 +83,8 @@ target "alpine-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG-alpine"} tags = [ - "$IMAGE_NAME:$TAG-alpine", - notequal("", BUILDREV) ? "$IMAGE_NAME:$TAG-alpine-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine-\${BUILD_REVISION}" : "" ] } EOF @@ -93,8 +97,8 @@ target "debian-$TAG" { platforms = [$P2] args = {"BASETAG" = "$TAG"} tags = [ - "$IMAGE_NAME:$TAG", - notequal("", BUILDREV) ? "$IMAGE_NAME:$TAG-debian-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -103,8 +107,8 @@ target "alpine-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG-alpine"} tags = [ - "$IMAGE_NAME:$TAG-alpine", - notequal("", BUILDREV) ? "$IMAGE_NAME:$TAG-alpine-\${BUILDREV}" : "" + "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine-\${BUILD_REVISION}" : "" ] } EOF diff --git a/publish.sh b/publish.sh deleted file mode 100755 index 9264a34..0000000 --- a/publish.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -# -# Usage: ./publish.sh [Version1] [Version2]... - -set -e - -cd "$(dirname "$0")" -TMPFILE=$(mktemp) -trap 'rm -vf "$TMPFILE"' EXIT - -if [ -n "$@" ]; then - TAGS="$@" - echo "Generate configuration for only this tags: $TAGS" - export TAGS -else - echo "Generate configuration for all predefined tags." -fi -./generate.sh "$TMPFILE" -echo "Generated docker bake HCL script at: $TMPFILE" - -BUILDREV=$(git rev-parse --short HEAD) -echo "Starting building and publish revision $BUILDREV..." -export BUILDREV -docker buildx bake --pull --push -f "$TMPFILE" - -echo "Successfully build and pushed." \ No newline at end of file