This PR factorises the JDK in docker bake file, resulting in a more concise definition of images and ensuring tagging consistency, with one block defining Alpine images, another defining Debian images, and lastly the remaining one for the special Debian 21 preview image.
~I titled this PR "chore/breaking" as it depends:~
~If this PR is released first, it will be a breaking change as it will change the JDK of the short tags to Java 17, closing #399 and superseding #400~
~If this PR is released after #400, there will be no change to the resulting images and tags.~
### Submitter checklist
- [x] Make sure you are opening from a **topic/feature/bugfix branch** (right side) and not your main branch!
- [x] Ensure that the pull request title represents the desired changelog entry
- [x] Please describe what you did
- [x] Link to relevant issues in GitHub or Jira
- [x] Link to relevant pull requests, esp. upstream and downstream changes
- [x] Ensure you have provided tests - that demonstrates feature works or fixes the issue
This PR factorises the JDK in docker bake file, resulting in a more concise definition of images and ensuring tagging consistency, with one block defining Alpine images, another defining Debian images, and lastly the remaining one for the special Debian 21 preview image.
~I titled this PR "chore/breaking" as it depends:~
EDIT: No longer a breaking change with https://github.com/jenkinsci/docker-ssh-agent/pull/401/commits/427788cf3a50b320b6b1af8fe4f5d95140db8e5b
Note that we can still target a single image even with this factorisation:
Testing done
Verified that the output of
docker buildx bake --file docker-bake.hcl linux --print
withVERSION=1.2.3
&ON_TAG=true
is equivalent to the one of #400:#400
``` { "group": { "default": { "targets": [ "linux" ] }, "linux": { "targets": [ "alpine_jdk11", "alpine_jdk17", "alpine_jdk21", "debian_jdk11", "debian_jdk17", "debian_jdk21", "debian_jdk21-preview" ] } }, "target": { "alpine_jdk11": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "11.0.23_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk11", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk11", "docker.io/jenkins/ssh-agent:alpine-jdk11", "docker.io/jenkins/ssh-agent:latest-alpine-jdk11", "docker.io/jenkins/ssh-agent:alpine3.19-jdk11", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk11" ], "platforms": [ "linux/amd64" ] }, "alpine_jdk17": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "17.0.11_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk17", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk17", "docker.io/jenkins/ssh-agent:alpine", "docker.io/jenkins/ssh-agent:alpine-jdk17", "docker.io/jenkins/ssh-agent:latest-alpine-jdk17", "docker.io/jenkins/ssh-agent:alpine3.19", "docker.io/jenkins/ssh-agent:alpine3.19-jdk17", "docker.io/jenkins/ssh-agent:latest-alpine3.19", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk17" ], "platforms": [ "linux/amd64" ] }, "alpine_jdk21": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "21.0.3_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk21", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk21", "docker.io/jenkins/ssh-agent:alpine-jdk21", "docker.io/jenkins/ssh-agent:latest-alpine-jdk21", "docker.io/jenkins/ssh-agent:alpine3.19-jdk21", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk21" ], "platforms": [ "linux/amd64", "linux/arm64" ] }, "debian_jdk11": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "11.0.23_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk11", "docker.io/jenkins/ssh-agent:bookworm-jdk11", "docker.io/jenkins/ssh-agent:debian-jdk11", "docker.io/jenkins/ssh-agent:jdk11", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk11", "docker.io/jenkins/ssh-agent:latest-debian-jdk11", "docker.io/jenkins/ssh-agent:latest-jdk11" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/s390x", "linux/ppc64le" ] }, "debian_jdk17": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "17.0.11_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3", "docker.io/jenkins/ssh-agent:1.2.3-jdk17", "docker.io/jenkins/ssh-agent:bookworm-jdk17", "docker.io/jenkins/ssh-agent:debian-jdk17", "docker.io/jenkins/ssh-agent:jdk17", "docker.io/jenkins/ssh-agent:latest", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk17", "docker.io/jenkins/ssh-agent:latest-debian-jdk17", "docker.io/jenkins/ssh-agent:latest-jdk17" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/ppc64le" ] }, "debian_jdk21": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "21.0.3_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk21", "docker.io/jenkins/ssh-agent:bookworm-jdk21", "docker.io/jenkins/ssh-agent:debian-jdk21", "docker.io/jenkins/ssh-agent:jdk21", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk21", "docker.io/jenkins/ssh-agent:latest-debian-jdk21", "docker.io/jenkins/ssh-agent:latest-jdk21" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/ppc64le", "linux/s390x" ] }, "debian_jdk21-preview": { "context": ".", "dockerfile": "debian/preview/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "21.0.1+12" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk21-preview", "docker.io/jenkins/ssh-agent:bookworm-jdk21-preview", "docker.io/jenkins/ssh-agent:debian-jdk21-preview", "docker.io/jenkins/ssh-agent:jdk21-preview", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk21-preview", "docker.io/jenkins/ssh-agent:latest-debian-jdk21-preview", "docker.io/jenkins/ssh-agent:latest-jdk21-preview" ], "platforms": [ "linux/arm/v7" ] } } } ```After
``` { "group": { "alpine": { "targets": [ "alpine_11", "alpine_17", "alpine_21" ] }, "debian": { "targets": [ "debian_11", "debian_17", "debian_21" ] }, "default": { "targets": [ "linux" ] }, "linux": { "targets": [ "alpine", "debian", "debian_jdk21-preview" ] } }, "target": { "alpine_11": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "11.0.23_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk11", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk11", "docker.io/jenkins/ssh-agent:alpine-jdk11", "docker.io/jenkins/ssh-agent:latest-alpine-jdk11", "docker.io/jenkins/ssh-agent:alpine3.19-jdk11", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk11" ], "platforms": [ "linux/amd64" ] }, "alpine_17": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "17.0.11_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk17", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk17", "docker.io/jenkins/ssh-agent:alpine", "docker.io/jenkins/ssh-agent:alpine3.19", "docker.io/jenkins/ssh-agent:latest-alpine3.19", "docker.io/jenkins/ssh-agent:alpine-jdk17", "docker.io/jenkins/ssh-agent:latest-alpine-jdk17", "docker.io/jenkins/ssh-agent:alpine3.19-jdk17", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk17" ], "platforms": [ "linux/amd64" ] }, "alpine_21": { "context": ".", "dockerfile": "alpine/Dockerfile", "args": { "ALPINE_TAG": "3.19.1", "JAVA_VERSION": "21.0.3_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-alpine-jdk21", "docker.io/jenkins/ssh-agent:1.2.3-alpine3.19-jdk21", "docker.io/jenkins/ssh-agent:alpine-jdk21", "docker.io/jenkins/ssh-agent:latest-alpine-jdk21", "docker.io/jenkins/ssh-agent:alpine3.19-jdk21", "docker.io/jenkins/ssh-agent:latest-alpine3.19-jdk21" ], "platforms": [ "linux/amd64", "linux/arm64" ] }, "debian_11": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "11.0.23_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk11", "docker.io/jenkins/ssh-agent:bookworm-jdk11", "docker.io/jenkins/ssh-agent:debian-jdk11", "docker.io/jenkins/ssh-agent:jdk11", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk11", "docker.io/jenkins/ssh-agent:latest-debian-jdk11", "docker.io/jenkins/ssh-agent:latest-jdk11" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/ppc64le", "linux/s390x" ] }, "debian_17": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "17.0.11_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk17", "docker.io/jenkins/ssh-agent:1.2.3", "docker.io/jenkins/ssh-agent:latest", "docker.io/jenkins/ssh-agent:bookworm-jdk17", "docker.io/jenkins/ssh-agent:debian-jdk17", "docker.io/jenkins/ssh-agent:jdk17", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk17", "docker.io/jenkins/ssh-agent:latest-debian-jdk17", "docker.io/jenkins/ssh-agent:latest-jdk17" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/ppc64le" ] }, "debian_21": { "context": ".", "dockerfile": "debian/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "21.0.3_9" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk21", "docker.io/jenkins/ssh-agent:bookworm-jdk21", "docker.io/jenkins/ssh-agent:debian-jdk21", "docker.io/jenkins/ssh-agent:jdk21", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk21", "docker.io/jenkins/ssh-agent:latest-debian-jdk21", "docker.io/jenkins/ssh-agent:latest-jdk21" ], "platforms": [ "linux/amd64", "linux/arm64", "linux/ppc64le", "linux/s390x" ] }, "debian_jdk21-preview": { "context": ".", "dockerfile": "debian/preview/Dockerfile", "args": { "DEBIAN_RELEASE": "bookworm-20240423", "JAVA_VERSION": "21.0.1+12" }, "tags": [ "docker.io/jenkins/ssh-agent:1.2.3-jdk21-preview", "docker.io/jenkins/ssh-agent:bookworm-jdk21-preview", "docker.io/jenkins/ssh-agent:debian-jdk21-preview", "docker.io/jenkins/ssh-agent:jdk21-preview", "docker.io/jenkins/ssh-agent:latest-bookworm-jdk21-preview", "docker.io/jenkins/ssh-agent:latest-debian-jdk21-preview", "docker.io/jenkins/ssh-agent:latest-jdk21-preview" ], "platforms": [ "linux/arm/v7" ] } } } ```