From 4190c17c45c0ef32d5d9c91567fc2a349ec69d6d Mon Sep 17 00:00:00 2001 From: Pau Rodriguez-Estivill Date: Fri, 4 Mar 2022 16:10:19 +0100 Subject: [PATCH] Move IMAGE_NAME to Docker Bake --- BUILD.md | 24 ++++++++++-------------- docker-bake.hcl | 48 ++++++++++++++++++++++++++---------------------- generate.sh | 33 ++++++++++++++++++--------------- 3 files changed, 54 insertions(+), 51 deletions(-) diff --git a/BUILD.md b/BUILD.md index 07461ac..35e882b 100644 --- a/BUILD.md +++ b/BUILD.md @@ -20,30 +20,26 @@ docker buildx inspect --bootstrap ## Generate the images -### Generate build configuration - -In order to modify the image name or any other configurable parameter run the `generate.sh` script. - -```sh -IMAGE_NAME="postgres-backup-local" ./generate.sh config.hcl -``` - -### Build the images - In order to only build the images locally run the following command: ```sh -docker buildx bake --pull -f config.hcl +docker buildx bake --pull ``` -In order to publish directly to the repository run this command instead: +In order to build modifying the image name and the registry prefix run the following command: ```sh -REGISTRY_PREFIX="dockerhub_username/" docker buildx bake --pull --push -f config.hcl +REGISTRY_PREFIX="dockerhub_username/" IMAGE_NAME="postgres-backup-local" docker buildx bake --pull +``` + +In order to publish directly to the registry run this command instead: + +```sh +REGISTRY_PREFIX="dockerhub_username/" docker buildx bake --pull --push ``` Also, optionally, it can also generate build revision tags from last git commit: ```sh -REGISTRY_PREFIX="dockerhub_username/" BUILD_REVISION=$(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 ``` diff --git a/docker-bake.hcl b/docker-bake.hcl index 6faefa3..aee17c5 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -6,6 +6,10 @@ variable "REGISTRY_PREFIX" { default = "" } +variable "IMAGE_NAME" { + default = "postgres-backup-local" +} + variable "BUILD_REVISION" { default = "" } @@ -25,9 +29,9 @@ target "debian-latest" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "14"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:latest", - "${REGISTRY_PREFIX}postgres-backup-local:14", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:14-debian-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:latest", + "${REGISTRY_PREFIX}${IMAGE_NAME}:14", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:14-debian-${BUILD_REVISION}" : "" ] } @@ -36,9 +40,9 @@ target "alpine-latest" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "14-alpine"} tags = [ - "${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}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:alpine", + "${REGISTRY_PREFIX}${IMAGE_NAME}:14-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:14-alpine-${BUILD_REVISION}" : "" ] } @@ -47,8 +51,8 @@ target "debian-13" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "13"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:13", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:13-debian-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:13", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:13-debian-${BUILD_REVISION}" : "" ] } @@ -57,8 +61,8 @@ target "alpine-13" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "13-alpine"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:13-alpine", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:13-alpine-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:13-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:13-alpine-${BUILD_REVISION}" : "" ] } @@ -67,8 +71,8 @@ target "debian-12" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "12"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:12", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:12-debian-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:12", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:12-debian-${BUILD_REVISION}" : "" ] } @@ -77,8 +81,8 @@ target "alpine-12" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "12-alpine"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:12-alpine", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:12-alpine-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:12-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:12-alpine-${BUILD_REVISION}" : "" ] } @@ -87,8 +91,8 @@ target "debian-11" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7"] args = {"BASETAG" = "11"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:11", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:11-debian-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:11", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:11-debian-${BUILD_REVISION}" : "" ] } @@ -97,8 +101,8 @@ target "alpine-11" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "11-alpine"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:11-alpine", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:11-alpine-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:11-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:11-alpine-${BUILD_REVISION}" : "" ] } @@ -107,8 +111,8 @@ target "debian-10" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7"] args = {"BASETAG" = "10"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:10", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:10-debian-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:10", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:10-debian-${BUILD_REVISION}" : "" ] } @@ -117,7 +121,7 @@ target "alpine-10" { platforms = ["linux/amd64", "linux/arm64", "linux/arm/v7", "linux/s390x", "linux/ppc64le"] args = {"BASETAG" = "10-alpine"} tags = [ - "${REGISTRY_PREFIX}postgres-backup-local:10-alpine", - notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}postgres-backup-local:10-alpine-${BUILD_REVISION}" : "" + "${REGISTRY_PREFIX}${IMAGE_NAME}:10-alpine", + notequal("", BUILD_REVISION) ? "${REGISTRY_PREFIX}${IMAGE_NAME}:10-alpine-${BUILD_REVISION}" : "" ] } diff --git a/generate.sh b/generate.sh index 39f12e5..838c646 100755 --- a/generate.sh +++ b/generate.sh @@ -3,7 +3,6 @@ set -e DOCKER_BAKE_FILE=${1:-"docker-bake.hcl"} -IMAGE_NAME=${IMAGE_NAME:-"postgres-backup-local"} GOCRONVER="v0.0.10" MAIN_TAG="14" @@ -29,6 +28,10 @@ variable "REGISTRY_PREFIX" { default = "" } +variable "IMAGE_NAME" { + default = "postgres-backup-local" +} + variable "BUILD_REVISION" { default = "" } @@ -48,9 +51,9 @@ target "debian-latest" { platforms = [$P] args = {"BASETAG" = "$MAIN_TAG"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:latest", - "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-debian-\${BUILD_REVISION}" : "" + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:latest", + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$MAIN_TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$MAIN_TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -59,9 +62,9 @@ target "alpine-latest" { platforms = [$P] args = {"BASETAG" = "$MAIN_TAG-alpine"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:alpine", - "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-alpine", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$MAIN_TAG-alpine-\${BUILD_REVISION}" : "" + "\${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 @@ -73,8 +76,8 @@ target "debian-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-debian-\${BUILD_REVISION}" : "" + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -83,8 +86,8 @@ target "alpine-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG-alpine"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine-\${BUILD_REVISION}" : "" + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-alpine", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-alpine-\${BUILD_REVISION}" : "" ] } EOF @@ -97,8 +100,8 @@ target "debian-$TAG" { platforms = [$P2] args = {"BASETAG" = "$TAG"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-debian-\${BUILD_REVISION}" : "" + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-debian-\${BUILD_REVISION}" : "" ] } @@ -107,8 +110,8 @@ target "alpine-$TAG" { platforms = [$P] args = {"BASETAG" = "$TAG-alpine"} tags = [ - "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine", - notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}$IMAGE_NAME:$TAG-alpine-\${BUILD_REVISION}" : "" + "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-alpine", + notequal("", BUILD_REVISION) ? "\${REGISTRY_PREFIX}\${IMAGE_NAME}:$TAG-alpine-\${BUILD_REVISION}" : "" ] } EOF