Skip to content

Conversation

@azul-publisher
Copy link

Documentation MR: docker-library/docs#2320

@github-actions

This comment has been minimized.

Copy link
Contributor

@gdams gdams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@ppetrosh
Copy link

ppetrosh commented Mar 8, 2024

@tianon @yosifkit, what do you guys think about this PR? Can this be merged?

@geertjanw
Copy link

@tianon @yosifkit — can you help get this further and approved?

@azul-publisher azul-publisher requested a review from a team as a code owner April 9, 2024 07:36
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@geertjanw
Copy link

@LaurentGoderre @tianon @yosifkit -- good to go now?

@geertjanw
Copy link

Hi @LaurentGoderre @tianon @yosifkit -- we believe everything should be good now, can you confirm?

@LaurentGoderre
Copy link
Member

Not a blocker but typically there is a tag for each variant that default to a specific version (i.e. ubuntu, debian) so someone can do docker run azul-zulu:ubuntu

LaurentGoderre
LaurentGoderre previously approved these changes May 10, 2024
@geertjanw
Copy link

Can we gently prod @tianon and @yosifkit here? Would love to get further with this.

@geertjanw
Copy link

Hi @tianon @yosifkit -- we believe everything should be good now, can you confirm?

1 similar comment
@geertjanw
Copy link

Hi @tianon @yosifkit -- we believe everything should be good now, can you confirm?

Copy link
Contributor

@gdams gdams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes still LGTM. To add a bit more context Azul Zulu is another OpenJDK vendor. Their binaries are shipped under GNU General Public License, version 2 with the Classpath Exception.

@geertjanw
Copy link

Hello @tianon and @yosifkit and anyone else -- can we get further with this, we'd really love to wrap this up. :-)

@geertjanw
Copy link

@tianon @yosifkit Anything we you do here to wrap it up?

Copy link
Contributor

@gdams gdams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For what it's worth (I'm not a maintainer of this repo or affiliated with Azul) This PR should be good to merge @yosifkit @tianon would it be possible for a review?

@geertjanw
Copy link

@yosifkit @tianon -- what can we do to move this forward?

@ppetrosh
Copy link

ppetrosh commented Jan 8, 2025

@yosifkit @tianon can we get this merged? or what else needs to be done to move forward? Thanks!

@geertjanw
Copy link

Hi @tianon and @yosifkit, we love Docker and what you guys do for the community, please can you take a look at our work here, we'd love to be included in the official Docker images.

@tianon
Copy link
Member

tianon commented Mar 27, 2025

Thank you for your patience ❤️

I'm guessing there've been some updates to these in the meantime (or that they're due for some updates), but here's some review of what's currently proposed as a starting point. 👍


We typically discourage this sort of (all predominantly glibc-based) base OS diversity within a single image because for most users it's not functionally all that different or useful (and usually just makes choosing an appropriate base more difficult), and instead encourage maintainers to focus on the "upstream-preferred" base distribution, especially since Docker makes distribution differences matter quite a bit less -- are there concrete functional differences/advantages to users choosing one of these over the other besides their own personal preferences?

For example, are the binaries installed in the Debian and Ubuntu images different enough that one isn't compatible with the runtime environment of the other?

(See https://github.com/docker-library/docs/tree/939fc2b95219f744303c9ddea67f2cc353e255c5/eclipse-temurin#using-a-different-base-image for an example of what I mean, and if you scroll up to the tag listing, a good example of how out-of-control the supported tags get even with limiting it like this. 🙈)


Using the term "distroless" for something that isn't part of or officially related to the distroless project feels somewhat inappropriate; maybe instead document how to get to an image like this from another variant instead of officially supporting it here for now?


Just "debian", "centos", "alpine", "ubuntu" are not terribly specific aliases -- would recommend getting more specific so users can pin/better self-manage when there are issues with base image updates (for example "bookworm" or "debian12" so that when the "square wheel" rolls and Debian Trixie/13 is released you can decide whether to support multiple versions and users can manage the breakage they might experience from the rolling wheel by having an easier tag to target for pinning to the older version).


Related to the above, the centos images are effectively EOL (upstream is only supporting/actively maintaining CentOS Stream images for several years now, and not in DOI so not as an acceptable base here).


+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8

Does this really need to be so explicit/verbose? For example, would it be sufficient to only set LANG? For added context, this makes it harder for users who want to change the value to something else, and there isn't currently a way in the container runtime to unset them. 🙈


+ENV TZ=Etc/UTC

This is already the default timezone in all official images (and we even have a test that validates it), so this is unnecessary. 👍


+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \

This command (apt-key) is deprecated and removed in newer releases -- this should be gpg --batch --recv-keys and deb [ signed-by=/etc/keyrings/... ] ... or Signed-By: in the newer deb822 sources.list format.

Also, the key fingerprint should be specified by the full fingerprint (27BC0C8CB3D81623F59BDADCB1998361219BD9C9), so it can be fully validated by the tooling during fetching of it.

See https://github.com/docker-library/mysql/blob/6978e12b0d46abf24015045bd22a0cf11b19c150/8.0/Dockerfile.debian#L55-L71 for an example, in case that's helpful.


+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \

This should probably be apt-get install -y ./zulu-repo_${ZULU_REPO_VER}_all.deb instead. 👀


+    echo "Package: zulu11-*\nPin: version 11.0.20-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu11-jdk=11.0.20-* && \

If you ever end up using "debian revisions" for rebuilds that don't change the "upstream version" (11.0.20-1 vs 11.0.20-2) you might want to update this to be more explicit (ie no -* wildcard) so that there's a natural place to cache-bust (because our build system otherwise won't know to rebuild to pick up your packaging changes).


Any particular reason you need software-properties-common installed? (It's mostly a set of helpers for creating text files in /etc/apt/sources.list.d, so probably isn't necessary here as you/zulu-repo could just create the file directly instead. 😅)


If you end up keeping an RPM-based distro (after removing centos), you'll need to update from rpm --import https://repos.azulsystems.com/RPM-GPG-KEY-azulsystems to something that downloads and verifies that key by fingerprint or checksum before importing it. 👀


Also, to be explicit, I'm happy to elaborate on or further discuss any of these. ❤️

@ppetrosh
Copy link

@tianon Thank you for your thoughtful and constructive feedback. We agree with many of your points and are actively working to incorporate them into the next update of our Official Images. This may take a bit more time, but we will follow up with you as soon as the updates are ready.

@github-actions
Copy link

github-actions bot commented Dec 8, 2025

Diff for 2d33d3b:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index 8b13789..e85a97f 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1 +1,2 @@
-
+amd64
+arm64v8
diff --git a/_bashbrew-cat b/_bashbrew-cat
index bdfae4a..61f754c 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,243 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Azul Devops Team <[email protected]> (@azul-publisher), Pavel Petroshenko <[email protected]> (@ppetrosh), Anton Kozlov <[email protected]> (@AntonKozlov), Sergey Grinev <[email protected]> (@sgrinev), Daniel Sentivany <[email protected]> (@dsent9), Frank Delporte <[email protected]> (@fdelporte), Geertjan Wielenga <[email protected]> (@geertjanw)
+GitRepo: https://github.com/AzulSystems/azul-zulu-images.git
+GitCommit: 66b353fefc9c672cd5e4c9cbae8b32b16c42616f
+
+Tags: 8.90-8.0.472-jdk-alpine3.22, 8-alpine3.22, 8-jdk-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 8/jdk/alpine
+
+Tags: 8.90-8.0.472-jdk-debian13.1, 8, 8-jdk, 8-jdk-debian13.1
+Architectures: amd64, arm64v8
+Directory: 8/jdk/debian
+
+Tags: 8.90-8.0.472-jdk-headless-alpine3.22, 8-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 8/jdk-headless/alpine
+
+Tags: 8.90-8.0.472-jdk-headless-debian13.1, 8-headless, 8-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 8/jdk-headless/debian
+
+Tags: 8.90-8.0.472-jdk-headless-rockylinux10.0, 8-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 8/jdk-headless/rockylinux
+
+Tags: 8.90-8.0.472-jdk-rockylinux10.0, 8-rockylinux10.0, 8-jdk-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 8/jdk/rockylinux
+
+Tags: 8.90-8.0.472-jre-alpine3.22, 8-jre-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 8/jre/alpine
+
+Tags: 8.90-8.0.472-jre-debian13.1, 8-jre, 8-jre-debian13.1
+Architectures: amd64, arm64v8
+Directory: 8/jre/debian
+
+Tags: 8.90-8.0.472-jre-headless-alpine3.22, 8-jre-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 8/jre-headless/alpine
+
+Tags: 8.90-8.0.472-jre-headless-debian13.1, 8-jre-headless, 8-jre-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 8/jre-headless/debian
+
+Tags: 8.90-8.0.472-jre-headless-rockylinux10.0, 8-jre-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 8/jre-headless/rockylinux
+
+Tags: 8.90-8.0.472-jre-rockylinux10.0, 8-jre-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 8/jre/rockylinux
+
+Tags: 11.84-11.0.29-jdk-alpine3.22, 11-alpine3.22, 11-jdk-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 11/jdk/alpine
+
+Tags: 11.84-11.0.29-jdk-debian13.1, 11, 11-jdk, 11-jdk-debian13.1
+Architectures: amd64, arm64v8
+Directory: 11/jdk/debian
+
+Tags: 11.84-11.0.29-jdk-headless-alpine3.22, 11-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 11/jdk-headless/alpine
+
+Tags: 11.84-11.0.29-jdk-headless-debian13.1, 11-headless, 11-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 11/jdk-headless/debian
+
+Tags: 11.84-11.0.29-jdk-headless-rockylinux10.0, 11-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 11/jdk-headless/rockylinux
+
+Tags: 11.84-11.0.29-jdk-rockylinux10.0, 11-rockylinux10.0, 11-jdk-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 11/jdk/rockylinux
+
+Tags: 11.84-11.0.29-jre-alpine3.22, 11-jre-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 11/jre/alpine
+
+Tags: 11.84-11.0.29-jre-debian13.1, 11-jre, 11-jre-debian13.1
+Architectures: amd64, arm64v8
+Directory: 11/jre/debian
+
+Tags: 11.84-11.0.29-jre-headless-alpine3.22, 11-jre-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 11/jre-headless/alpine
+
+Tags: 11.84-11.0.29-jre-headless-debian13.1, 11-jre-headless, 11-jre-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 11/jre-headless/debian
+
+Tags: 11.84-11.0.29-jre-headless-rockylinux10.0, 11-jre-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 11/jre-headless/rockylinux
+
+Tags: 11.84-11.0.29-jre-rockylinux10.0, 11-jre-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 11/jre/rockylinux
+
+Tags: 17.62-17.0.17-jdk-alpine3.22, 17-alpine3.22, 17-jdk-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 17/jdk/alpine
+
+Tags: 17.62-17.0.17-jdk-debian13.1, 17, 17-jdk, 17-jdk-debian13.1
+Architectures: amd64, arm64v8
+Directory: 17/jdk/debian
+
+Tags: 17.62-17.0.17-jdk-headless-alpine3.22, 17-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 17/jdk-headless/alpine
+
+Tags: 17.62-17.0.17-jdk-headless-debian13.1, 17-headless, 17-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 17/jdk-headless/debian
+
+Tags: 17.62-17.0.17-jdk-headless-rockylinux10.0, 17-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 17/jdk-headless/rockylinux
+
+Tags: 17.62-17.0.17-jdk-rockylinux10.0, 17-rockylinux10.0, 17-jdk-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 17/jdk/rockylinux
+
+Tags: 17.62-17.0.17-jre-alpine3.22, 17-jre-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 17/jre/alpine
+
+Tags: 17.62-17.0.17-jre-debian13.1, 17-jre, 17-jre-debian13.1
+Architectures: amd64, arm64v8
+Directory: 17/jre/debian
+
+Tags: 17.62-17.0.17-jre-headless-alpine3.22, 17-jre-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 17/jre-headless/alpine
+
+Tags: 17.62-17.0.17-jre-headless-debian13.1, 17-jre-headless, 17-jre-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 17/jre-headless/debian
+
+Tags: 17.62-17.0.17-jre-headless-rockylinux10.0, 17-jre-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 17/jre-headless/rockylinux
+
+Tags: 17.62-17.0.17-jre-rockylinux10.0, 17-jre-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 17/jre/rockylinux
+
+Tags: 21.46-21.0.9-jdk-alpine3.22, 21-alpine3.22, 21-jdk-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 21/jdk/alpine
+
+Tags: 21.46-21.0.9-jdk-debian13.1, 21, 21-jdk, 21-jdk-debian13.1
+Architectures: amd64, arm64v8
+Directory: 21/jdk/debian
+
+Tags: 21.46-21.0.9-jdk-headless-alpine3.22, 21-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 21/jdk-headless/alpine
+
+Tags: 21.46-21.0.9-jdk-headless-debian13.1, 21-headless, 21-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 21/jdk-headless/debian
+
+Tags: 21.46-21.0.9-jdk-headless-rockylinux10.0, 21-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 21/jdk-headless/rockylinux
+
+Tags: 21.46-21.0.9-jdk-rockylinux10.0, 21-rockylinux10.0, 21-jdk-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 21/jdk/rockylinux
+
+Tags: 21.46-21.0.9-jre-alpine3.22, 21-jre-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 21/jre/alpine
+
+Tags: 21.46-21.0.9-jre-debian13.1, 21-jre, 21-jre-debian13.1
+Architectures: amd64, arm64v8
+Directory: 21/jre/debian
+
+Tags: 21.46-21.0.9-jre-headless-alpine3.22, 21-jre-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 21/jre-headless/alpine
+
+Tags: 21.46-21.0.9-jre-headless-debian13.1, 21-jre-headless, 21-jre-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 21/jre-headless/debian
+
+Tags: 21.46-21.0.9-jre-headless-rockylinux10.0, 21-jre-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 21/jre-headless/rockylinux
+
+Tags: 21.46-21.0.9-jre-rockylinux10.0, 21-jre-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 21/jre/rockylinux
+
+Tags: 25.30-25.0.1-jdk-alpine3.22, 25-alpine3.22, 25-jdk-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 25/jdk/alpine
+
+Tags: 25.30-25.0.1-jdk-debian13.1, 25, 25-jdk, 25-jdk-debian13.1
+Architectures: amd64, arm64v8
+Directory: 25/jdk/debian
+
+Tags: 25.30-25.0.1-jdk-headless-alpine3.22, 25-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 25/jdk-headless/alpine
+
+Tags: 25.30-25.0.1-jdk-headless-debian13.1, 25-headless, 25-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 25/jdk-headless/debian
+
+Tags: 25.30-25.0.1-jdk-headless-rockylinux10.0, 25-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 25/jdk-headless/rockylinux
+
+Tags: 25.30-25.0.1-jdk-rockylinux10.0, 25-rockylinux10.0, 25-jdk-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 25/jdk/rockylinux
+
+Tags: 25.30-25.0.1-jre-alpine3.22, 25-jre-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 25/jre/alpine
+
+Tags: 25.30-25.0.1-jre-debian13.1, 25-jre, 25-jre-debian13.1
+Architectures: amd64, arm64v8
+Directory: 25/jre/debian
+
+Tags: 25.30-25.0.1-jre-headless-alpine3.22, 25-jre-headless-alpine3.22
+Architectures: amd64, arm64v8
+Directory: 25/jre-headless/alpine
+
+Tags: 25.30-25.0.1-jre-headless-debian13.1, 25-jre-headless, 25-jre-headless-debian13.1
+Architectures: amd64, arm64v8
+Directory: 25/jre-headless/debian
+
+Tags: 25.30-25.0.1-jre-headless-rockylinux10.0, 25-jre-headless-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 25/jre-headless/rockylinux
+
+Tags: 25.30-25.0.1-jre-rockylinux10.0, 25-jre-rockylinux10.0
+Architectures: amd64, arm64v8
+Directory: 25/jre/rockylinux
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..b9ab2e3 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,155 @@
+azul-zulu:8
+azul-zulu:8-alpine3.22
+azul-zulu:8-headless
+azul-zulu:8-headless-alpine3.22
+azul-zulu:8-headless-debian13.1
+azul-zulu:8-headless-rockylinux10.0
+azul-zulu:8-jdk
+azul-zulu:8-jdk-alpine3.22
+azul-zulu:8-jdk-debian13.1
+azul-zulu:8-jdk-rockylinux10.0
+azul-zulu:8-jre
+azul-zulu:8-jre-alpine3.22
+azul-zulu:8-jre-debian13.1
+azul-zulu:8-jre-headless
+azul-zulu:8-jre-headless-alpine3.22
+azul-zulu:8-jre-headless-debian13.1
+azul-zulu:8-jre-headless-rockylinux10.0
+azul-zulu:8-jre-rockylinux10.0
+azul-zulu:8-rockylinux10.0
+azul-zulu:8.90-8.0.472-jdk-alpine3.22
+azul-zulu:8.90-8.0.472-jdk-debian13.1
+azul-zulu:8.90-8.0.472-jdk-headless-alpine3.22
+azul-zulu:8.90-8.0.472-jdk-headless-debian13.1
+azul-zulu:8.90-8.0.472-jdk-headless-rockylinux10.0
+azul-zulu:8.90-8.0.472-jdk-rockylinux10.0
+azul-zulu:8.90-8.0.472-jre-alpine3.22
+azul-zulu:8.90-8.0.472-jre-debian13.1
+azul-zulu:8.90-8.0.472-jre-headless-alpine3.22
+azul-zulu:8.90-8.0.472-jre-headless-debian13.1
+azul-zulu:8.90-8.0.472-jre-headless-rockylinux10.0
+azul-zulu:8.90-8.0.472-jre-rockylinux10.0
+azul-zulu:11
+azul-zulu:11-alpine3.22
+azul-zulu:11-headless
+azul-zulu:11-headless-alpine3.22
+azul-zulu:11-headless-debian13.1
+azul-zulu:11-headless-rockylinux10.0
+azul-zulu:11-jdk
+azul-zulu:11-jdk-alpine3.22
+azul-zulu:11-jdk-debian13.1
+azul-zulu:11-jdk-rockylinux10.0
+azul-zulu:11-jre
+azul-zulu:11-jre-alpine3.22
+azul-zulu:11-jre-debian13.1
+azul-zulu:11-jre-headless
+azul-zulu:11-jre-headless-alpine3.22
+azul-zulu:11-jre-headless-debian13.1
+azul-zulu:11-jre-headless-rockylinux10.0
+azul-zulu:11-jre-rockylinux10.0
+azul-zulu:11-rockylinux10.0
+azul-zulu:11.84-11.0.29-jdk-alpine3.22
+azul-zulu:11.84-11.0.29-jdk-debian13.1
+azul-zulu:11.84-11.0.29-jdk-headless-alpine3.22
+azul-zulu:11.84-11.0.29-jdk-headless-debian13.1
+azul-zulu:11.84-11.0.29-jdk-headless-rockylinux10.0
+azul-zulu:11.84-11.0.29-jdk-rockylinux10.0
+azul-zulu:11.84-11.0.29-jre-alpine3.22
+azul-zulu:11.84-11.0.29-jre-debian13.1
+azul-zulu:11.84-11.0.29-jre-headless-alpine3.22
+azul-zulu:11.84-11.0.29-jre-headless-debian13.1
+azul-zulu:11.84-11.0.29-jre-headless-rockylinux10.0
+azul-zulu:11.84-11.0.29-jre-rockylinux10.0
+azul-zulu:17
+azul-zulu:17-alpine3.22
+azul-zulu:17-headless
+azul-zulu:17-headless-alpine3.22
+azul-zulu:17-headless-debian13.1
+azul-zulu:17-headless-rockylinux10.0
+azul-zulu:17-jdk
+azul-zulu:17-jdk-alpine3.22
+azul-zulu:17-jdk-debian13.1
+azul-zulu:17-jdk-rockylinux10.0
+azul-zulu:17-jre
+azul-zulu:17-jre-alpine3.22
+azul-zulu:17-jre-debian13.1
+azul-zulu:17-jre-headless
+azul-zulu:17-jre-headless-alpine3.22
+azul-zulu:17-jre-headless-debian13.1
+azul-zulu:17-jre-headless-rockylinux10.0
+azul-zulu:17-jre-rockylinux10.0
+azul-zulu:17-rockylinux10.0
+azul-zulu:17.62-17.0.17-jdk-alpine3.22
+azul-zulu:17.62-17.0.17-jdk-debian13.1
+azul-zulu:17.62-17.0.17-jdk-headless-alpine3.22
+azul-zulu:17.62-17.0.17-jdk-headless-debian13.1
+azul-zulu:17.62-17.0.17-jdk-headless-rockylinux10.0
+azul-zulu:17.62-17.0.17-jdk-rockylinux10.0
+azul-zulu:17.62-17.0.17-jre-alpine3.22
+azul-zulu:17.62-17.0.17-jre-debian13.1
+azul-zulu:17.62-17.0.17-jre-headless-alpine3.22
+azul-zulu:17.62-17.0.17-jre-headless-debian13.1
+azul-zulu:17.62-17.0.17-jre-headless-rockylinux10.0
+azul-zulu:17.62-17.0.17-jre-rockylinux10.0
+azul-zulu:21
+azul-zulu:21-alpine3.22
+azul-zulu:21-headless
+azul-zulu:21-headless-alpine3.22
+azul-zulu:21-headless-debian13.1
+azul-zulu:21-headless-rockylinux10.0
+azul-zulu:21-jdk
+azul-zulu:21-jdk-alpine3.22
+azul-zulu:21-jdk-debian13.1
+azul-zulu:21-jdk-rockylinux10.0
+azul-zulu:21-jre
+azul-zulu:21-jre-alpine3.22
+azul-zulu:21-jre-debian13.1
+azul-zulu:21-jre-headless
+azul-zulu:21-jre-headless-alpine3.22
+azul-zulu:21-jre-headless-debian13.1
+azul-zulu:21-jre-headless-rockylinux10.0
+azul-zulu:21-jre-rockylinux10.0
+azul-zulu:21-rockylinux10.0
+azul-zulu:21.46-21.0.9-jdk-alpine3.22
+azul-zulu:21.46-21.0.9-jdk-debian13.1
+azul-zulu:21.46-21.0.9-jdk-headless-alpine3.22
+azul-zulu:21.46-21.0.9-jdk-headless-debian13.1
+azul-zulu:21.46-21.0.9-jdk-headless-rockylinux10.0
+azul-zulu:21.46-21.0.9-jdk-rockylinux10.0
+azul-zulu:21.46-21.0.9-jre-alpine3.22
+azul-zulu:21.46-21.0.9-jre-debian13.1
+azul-zulu:21.46-21.0.9-jre-headless-alpine3.22
+azul-zulu:21.46-21.0.9-jre-headless-debian13.1
+azul-zulu:21.46-21.0.9-jre-headless-rockylinux10.0
+azul-zulu:21.46-21.0.9-jre-rockylinux10.0
+azul-zulu:25
+azul-zulu:25-alpine3.22
+azul-zulu:25-headless
+azul-zulu:25-headless-alpine3.22
+azul-zulu:25-headless-debian13.1
+azul-zulu:25-headless-rockylinux10.0
+azul-zulu:25-jdk
+azul-zulu:25-jdk-alpine3.22
+azul-zulu:25-jdk-debian13.1
+azul-zulu:25-jdk-rockylinux10.0
+azul-zulu:25-jre
+azul-zulu:25-jre-alpine3.22
+azul-zulu:25-jre-debian13.1
+azul-zulu:25-jre-headless
+azul-zulu:25-jre-headless-alpine3.22
+azul-zulu:25-jre-headless-debian13.1
+azul-zulu:25-jre-headless-rockylinux10.0
+azul-zulu:25-jre-rockylinux10.0
+azul-zulu:25-rockylinux10.0
+azul-zulu:25.30-25.0.1-jdk-alpine3.22
+azul-zulu:25.30-25.0.1-jdk-debian13.1
+azul-zulu:25.30-25.0.1-jdk-headless-alpine3.22
+azul-zulu:25.30-25.0.1-jdk-headless-debian13.1
+azul-zulu:25.30-25.0.1-jdk-headless-rockylinux10.0
+azul-zulu:25.30-25.0.1-jdk-rockylinux10.0
+azul-zulu:25.30-25.0.1-jre-alpine3.22
+azul-zulu:25.30-25.0.1-jre-debian13.1
+azul-zulu:25.30-25.0.1-jre-headless-alpine3.22
+azul-zulu:25.30-25.0.1-jre-headless-debian13.1
+azul-zulu:25.30-25.0.1-jre-headless-rockylinux10.0
+azul-zulu:25.30-25.0.1-jre-rockylinux10.0
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index e69de29..53f368f 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -0,0 +1,60 @@
+azul-zulu:8-headless-alpine3.22
+azul-zulu:8-headless-debian13.1
+azul-zulu:8-headless-rockylinux10.0
+azul-zulu:8-jdk-alpine3.22
+azul-zulu:8-jdk-debian13.1
+azul-zulu:8-jdk-rockylinux10.0
+azul-zulu:8-jre-alpine3.22
+azul-zulu:8-jre-debian13.1
+azul-zulu:8-jre-headless-alpine3.22
+azul-zulu:8-jre-headless-debian13.1
+azul-zulu:8-jre-headless-rockylinux10.0
+azul-zulu:8-jre-rockylinux10.0
+azul-zulu:11-headless-alpine3.22
+azul-zulu:11-headless-debian13.1
+azul-zulu:11-headless-rockylinux10.0
+azul-zulu:11-jdk-alpine3.22
+azul-zulu:11-jdk-debian13.1
+azul-zulu:11-jdk-rockylinux10.0
+azul-zulu:11-jre-alpine3.22
+azul-zulu:11-jre-debian13.1
+azul-zulu:11-jre-headless-alpine3.22
+azul-zulu:11-jre-headless-debian13.1
+azul-zulu:11-jre-headless-rockylinux10.0
+azul-zulu:11-jre-rockylinux10.0
+azul-zulu:17-headless-alpine3.22
+azul-zulu:17-headless-debian13.1
+azul-zulu:17-headless-rockylinux10.0
+azul-zulu:17-jdk-alpine3.22
+azul-zulu:17-jdk-debian13.1
+azul-zulu:17-jdk-rockylinux10.0
+azul-zulu:17-jre-alpine3.22
+azul-zulu:17-jre-debian13.1
+azul-zulu:17-jre-headless-alpine3.22
+azul-zulu:17-jre-headless-debian13.1
+azul-zulu:17-jre-headless-rockylinux10.0
+azul-zulu:17-jre-rockylinux10.0
+azul-zulu:21-headless-alpine3.22
+azul-zulu:21-headless-debian13.1
+azul-zulu:21-headless-rockylinux10.0
+azul-zulu:21-jdk-alpine3.22
+azul-zulu:21-jdk-debian13.1
+azul-zulu:21-jdk-rockylinux10.0
+azul-zulu:21-jre-alpine3.22
+azul-zulu:21-jre-debian13.1
+azul-zulu:21-jre-headless-alpine3.22
+azul-zulu:21-jre-headless-debian13.1
+azul-zulu:21-jre-headless-rockylinux10.0
+azul-zulu:21-jre-rockylinux10.0
+azul-zulu:25-headless-alpine3.22
+azul-zulu:25-headless-debian13.1
+azul-zulu:25-headless-rockylinux10.0
+azul-zulu:25-jdk-alpine3.22
+azul-zulu:25-jdk-debian13.1
+azul-zulu:25-jdk-rockylinux10.0
+azul-zulu:25-jre-alpine3.22
+azul-zulu:25-jre-debian13.1
+azul-zulu:25-jre-headless-alpine3.22
+azul-zulu:25-jre-headless-debian13.1
+azul-zulu:25-jre-headless-rockylinux10.0
+azul-zulu:25-jre-rockylinux10.0
diff --git a/azul-zulu_11-headless-alpine3.22/Dockerfile b/azul-zulu_11-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..82daf52
--- /dev/null
+++ b/azul-zulu_11-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu11-jdk-headless=11.0.29-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-headless-debian13.1/Dockerfile b/azul-zulu_11-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..79ad36b
--- /dev/null
+++ b/azul-zulu_11-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu11-*\nPin: version 11.0.29-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu11-jdk-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-headless-rockylinux10.0/Dockerfile b/azul-zulu_11-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..d95a595
--- /dev/null
+++ b/azul-zulu_11-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu11-jdk-headless-11.0.29-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jdk-alpine3.22/Dockerfile b/azul-zulu_11-jdk-alpine3.22/Dockerfile
new file mode 100644
index 0000000..8d462d6
--- /dev/null
+++ b/azul-zulu_11-jdk-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu11-jdk=11.0.29-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jdk-debian13.1/Dockerfile b/azul-zulu_11-jdk-debian13.1/Dockerfile
new file mode 100644
index 0000000..4a9e0e5
--- /dev/null
+++ b/azul-zulu_11-jdk-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu11-*\nPin: version 11.0.29-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu11-jdk && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jdk-rockylinux10.0/Dockerfile b/azul-zulu_11-jdk-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..52870a4
--- /dev/null
+++ b/azul-zulu_11-jdk-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu11-jdk-11.0.29-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-alpine3.22/Dockerfile b/azul-zulu_11-jre-alpine3.22/Dockerfile
new file mode 100644
index 0000000..927a516
--- /dev/null
+++ b/azul-zulu_11-jre-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu11-jre=11.0.29-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-debian13.1/Dockerfile b/azul-zulu_11-jre-debian13.1/Dockerfile
new file mode 100644
index 0000000..022cbaa
--- /dev/null
+++ b/azul-zulu_11-jre-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu11-*\nPin: version 11.0.29-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu11-jre && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-headless-alpine3.22/Dockerfile b/azul-zulu_11-jre-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..ce569ef
--- /dev/null
+++ b/azul-zulu_11-jre-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu11-jre-headless=11.0.29-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-headless-debian13.1/Dockerfile b/azul-zulu_11-jre-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..4cbff38
--- /dev/null
+++ b/azul-zulu_11-jre-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu11-*\nPin: version 11.0.29-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu11-jre-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-headless-rockylinux10.0/Dockerfile b/azul-zulu_11-jre-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..34fb1aa
--- /dev/null
+++ b/azul-zulu_11-jre-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu11-jre-headless-11.0.29-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11-jre-rockylinux10.0/Dockerfile b/azul-zulu_11-jre-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..fe0369b
--- /dev/null
+++ b/azul-zulu_11-jre-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu11-jre-11.0.29-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_17-headless-alpine3.22/Dockerfile b/azul-zulu_17-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..6c7bfa5
--- /dev/null
+++ b/azul-zulu_17-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu17-jdk-headless=17.0.17-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-headless-debian13.1/Dockerfile b/azul-zulu_17-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..f0d2f2b
--- /dev/null
+++ b/azul-zulu_17-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu17-*\nPin: version 17.0.17-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu17-jdk-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-headless-rockylinux10.0/Dockerfile b/azul-zulu_17-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..eb7e8f2
--- /dev/null
+++ b/azul-zulu_17-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu17-jdk-headless-17.0.17-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jdk-alpine3.22/Dockerfile b/azul-zulu_17-jdk-alpine3.22/Dockerfile
new file mode 100644
index 0000000..6774c03
--- /dev/null
+++ b/azul-zulu_17-jdk-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu17-jdk=17.0.17-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jdk-debian13.1/Dockerfile b/azul-zulu_17-jdk-debian13.1/Dockerfile
new file mode 100644
index 0000000..8a6a2e2
--- /dev/null
+++ b/azul-zulu_17-jdk-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu17-*\nPin: version 17.0.17-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu17-jdk && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jdk-rockylinux10.0/Dockerfile b/azul-zulu_17-jdk-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..1f46297
--- /dev/null
+++ b/azul-zulu_17-jdk-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu17-jdk-17.0.17-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-alpine3.22/Dockerfile b/azul-zulu_17-jre-alpine3.22/Dockerfile
new file mode 100644
index 0000000..97e87ba
--- /dev/null
+++ b/azul-zulu_17-jre-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu17-jre=17.0.17-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-debian13.1/Dockerfile b/azul-zulu_17-jre-debian13.1/Dockerfile
new file mode 100644
index 0000000..1895f32
--- /dev/null
+++ b/azul-zulu_17-jre-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu17-*\nPin: version 17.0.17-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu17-jre && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-headless-alpine3.22/Dockerfile b/azul-zulu_17-jre-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..6dbffd2
--- /dev/null
+++ b/azul-zulu_17-jre-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu17-jre-headless=17.0.17-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-headless-debian13.1/Dockerfile b/azul-zulu_17-jre-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..b4d7cef
--- /dev/null
+++ b/azul-zulu_17-jre-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu17-*\nPin: version 17.0.17-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu17-jre-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-headless-rockylinux10.0/Dockerfile b/azul-zulu_17-jre-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..af11c4b
--- /dev/null
+++ b/azul-zulu_17-jre-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu17-jre-headless-17.0.17-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17-jre-rockylinux10.0/Dockerfile b/azul-zulu_17-jre-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..5df01ae
--- /dev/null
+++ b/azul-zulu_17-jre-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu17-jre-17.0.17-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_21-headless-alpine3.22/Dockerfile b/azul-zulu_21-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..7a4bd47
--- /dev/null
+++ b/azul-zulu_21-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu21-jdk-headless=21.0.9-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-headless-debian13.1/Dockerfile b/azul-zulu_21-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..2e65124
--- /dev/null
+++ b/azul-zulu_21-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu21-*\nPin: version 21.0.9-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu21-jdk-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-headless-rockylinux10.0/Dockerfile b/azul-zulu_21-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..07ea3e2
--- /dev/null
+++ b/azul-zulu_21-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu21-jdk-headless-21.0.9-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jdk-alpine3.22/Dockerfile b/azul-zulu_21-jdk-alpine3.22/Dockerfile
new file mode 100644
index 0000000..0733b45
--- /dev/null
+++ b/azul-zulu_21-jdk-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu21-jdk=21.0.9-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jdk-debian13.1/Dockerfile b/azul-zulu_21-jdk-debian13.1/Dockerfile
new file mode 100644
index 0000000..c868233
--- /dev/null
+++ b/azul-zulu_21-jdk-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu21-*\nPin: version 21.0.9-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu21-jdk && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jdk-rockylinux10.0/Dockerfile b/azul-zulu_21-jdk-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..1d98c72
--- /dev/null
+++ b/azul-zulu_21-jdk-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu21-jdk-21.0.9-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-alpine3.22/Dockerfile b/azul-zulu_21-jre-alpine3.22/Dockerfile
new file mode 100644
index 0000000..8b2ac0b
--- /dev/null
+++ b/azul-zulu_21-jre-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu21-jre=21.0.9-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-debian13.1/Dockerfile b/azul-zulu_21-jre-debian13.1/Dockerfile
new file mode 100644
index 0000000..9546329
--- /dev/null
+++ b/azul-zulu_21-jre-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu21-*\nPin: version 21.0.9-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu21-jre && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-headless-alpine3.22/Dockerfile b/azul-zulu_21-jre-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..8cd6d12
--- /dev/null
+++ b/azul-zulu_21-jre-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu21-jre-headless=21.0.9-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-headless-debian13.1/Dockerfile b/azul-zulu_21-jre-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..71b104d
--- /dev/null
+++ b/azul-zulu_21-jre-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu21-*\nPin: version 21.0.9-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu21-jre-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-headless-rockylinux10.0/Dockerfile b/azul-zulu_21-jre-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..e9162ff
--- /dev/null
+++ b/azul-zulu_21-jre-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu21-jre-headless-21.0.9-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_21-jre-rockylinux10.0/Dockerfile b/azul-zulu_21-jre-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..4f21ba7
--- /dev/null
+++ b/azul-zulu_21-jre-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu21-jre-21.0.9-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu21
diff --git a/azul-zulu_25-headless-alpine3.22/Dockerfile b/azul-zulu_25-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..1d21157
--- /dev/null
+++ b/azul-zulu_25-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu25-jdk-headless=25.0.1-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-headless-debian13.1/Dockerfile b/azul-zulu_25-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..fe49066
--- /dev/null
+++ b/azul-zulu_25-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu25-*\nPin: version 25.0.1-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu25-jdk-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-headless-rockylinux10.0/Dockerfile b/azul-zulu_25-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..d4507d8
--- /dev/null
+++ b/azul-zulu_25-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu25-jdk-headless-25.0.1-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jdk-alpine3.22/Dockerfile b/azul-zulu_25-jdk-alpine3.22/Dockerfile
new file mode 100644
index 0000000..4b543bb
--- /dev/null
+++ b/azul-zulu_25-jdk-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu25-jdk=25.0.1-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jdk-debian13.1/Dockerfile b/azul-zulu_25-jdk-debian13.1/Dockerfile
new file mode 100644
index 0000000..acf3e08
--- /dev/null
+++ b/azul-zulu_25-jdk-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu25-*\nPin: version 25.0.1-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu25-jdk && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jdk-rockylinux10.0/Dockerfile b/azul-zulu_25-jdk-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..da2844a
--- /dev/null
+++ b/azul-zulu_25-jdk-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu25-jdk-25.0.1-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-alpine3.22/Dockerfile b/azul-zulu_25-jre-alpine3.22/Dockerfile
new file mode 100644
index 0000000..128d3b7
--- /dev/null
+++ b/azul-zulu_25-jre-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu25-jre=25.0.1-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-debian13.1/Dockerfile b/azul-zulu_25-jre-debian13.1/Dockerfile
new file mode 100644
index 0000000..477695e
--- /dev/null
+++ b/azul-zulu_25-jre-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu25-*\nPin: version 25.0.1-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu25-jre && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-headless-alpine3.22/Dockerfile b/azul-zulu_25-jre-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..24d5579
--- /dev/null
+++ b/azul-zulu_25-jre-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu25-jre-headless=25.0.1-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-headless-debian13.1/Dockerfile b/azul-zulu_25-jre-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..b40f1ea
--- /dev/null
+++ b/azul-zulu_25-jre-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu25-*\nPin: version 25.0.1-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu25-jre-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-headless-rockylinux10.0/Dockerfile b/azul-zulu_25-jre-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..aced6fe
--- /dev/null
+++ b/azul-zulu_25-jre-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu25-jre-headless-25.0.1-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_25-jre-rockylinux10.0/Dockerfile b/azul-zulu_25-jre-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..c1afc3d
--- /dev/null
+++ b/azul-zulu_25-jre-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu25-jre-25.0.1-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu25
diff --git a/azul-zulu_8-headless-alpine3.22/Dockerfile b/azul-zulu_8-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..2617c3c
--- /dev/null
+++ b/azul-zulu_8-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu8-jdk-headless=8.0.472-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-headless-debian13.1/Dockerfile b/azul-zulu_8-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..6a99afd
--- /dev/null
+++ b/azul-zulu_8-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu8-*\nPin: version 8.0.472-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu8-jdk-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-headless-rockylinux10.0/Dockerfile b/azul-zulu_8-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..17af017
--- /dev/null
+++ b/azul-zulu_8-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu8-jdk-headless-8.0.472-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jdk-alpine3.22/Dockerfile b/azul-zulu_8-jdk-alpine3.22/Dockerfile
new file mode 100644
index 0000000..7d57765
--- /dev/null
+++ b/azul-zulu_8-jdk-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu8-jdk=8.0.472-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jdk-debian13.1/Dockerfile b/azul-zulu_8-jdk-debian13.1/Dockerfile
new file mode 100644
index 0000000..349cc28
--- /dev/null
+++ b/azul-zulu_8-jdk-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu8-*\nPin: version 8.0.472-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu8-jdk && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jdk-rockylinux10.0/Dockerfile b/azul-zulu_8-jdk-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..157825a
--- /dev/null
+++ b/azul-zulu_8-jdk-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu8-jdk-8.0.472-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-alpine3.22/Dockerfile b/azul-zulu_8-jre-alpine3.22/Dockerfile
new file mode 100644
index 0000000..91069fa
--- /dev/null
+++ b/azul-zulu_8-jre-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu8-jre=8.0.472-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-debian13.1/Dockerfile b/azul-zulu_8-jre-debian13.1/Dockerfile
new file mode 100644
index 0000000..b42253d
--- /dev/null
+++ b/azul-zulu_8-jre-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu8-*\nPin: version 8.0.472-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu8-jre && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-headless-alpine3.22/Dockerfile b/azul-zulu_8-jre-headless-alpine3.22/Dockerfile
new file mode 100644
index 0000000..4442596
--- /dev/null
+++ b/azul-zulu_8-jre-headless-alpine3.22/Dockerfile
@@ -0,0 +1,10 @@
+FROM alpine:3.22
+ARG REPO_HOST=repos.azul.com
+ENV LANG=en_US.UTF-8
+RUN set -e && \
+    wget -P /etc/apk/keys/ https://cdn.azul.com/public_keys/[email protected] && \
+    echo "https://$REPO_HOST/zulu/alpine" | tee -a /etc/apk/repositories && \
+    apk update && \
+    apk add --no-cache zulu8-jre-headless=8.0.472-r1
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-headless-debian13.1/Dockerfile b/azul-zulu_8-jre-headless-debian13.1/Dockerfile
new file mode 100644
index 0000000..fa7c6f1
--- /dev/null
+++ b/azul-zulu_8-jre-headless-debian13.1/Dockerfile
@@ -0,0 +1,18 @@
+FROM debian:13.1
+ARG REPO_HOST=repos.azul.com
+
+ENV LANG='en_US.UTF-8'
+RUN apt update && \
+    apt install -y gnupg ca-certificates curl && \
+    curl -s https://repos.azul.com/azul-repo.key | gpg --dearmor -o /usr/share/keyrings/azul.gpg && \
+    echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://$REPO_HOST/zulu/deb stable main" | tee /etc/apt/sources.list.d/zulu.list && \
+    echo "Package: zulu8-*\nPin: version 8.0.472-1\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt update && \
+    apt-get -qq -y --no-install-recommends install zulu8-jre-headless && \
+    apt-get -qq -y purge --auto-remove gnupg curl && \
+    apt-get -qq -y autoremove && \
+    apt-get -qq clean && \
+    rm -rf /var/lib/apt/lists/* && \
+    rm -f /etc/apt/sources.list.d/zulu.list
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-headless-rockylinux10.0/Dockerfile b/azul-zulu_8-jre-headless-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..32f5017
--- /dev/null
+++ b/azul-zulu_8-jre-headless-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu8-jre-headless-8.0.472-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8-jre-rockylinux10.0/Dockerfile b/azul-zulu_8-jre-rockylinux10.0/Dockerfile
new file mode 100644
index 0000000..82a3151
--- /dev/null
+++ b/azul-zulu_8-jre-rockylinux10.0/Dockerfile
@@ -0,0 +1,20 @@
+FROM rockylinux/rockylinux:10.0
+ARG REPO_HOST=repos.azul.com
+ENV LANG='en_US.UTF-8'
+
+RUN set -e && tee /etc/yum.repos.d/zulu-openjdk.repo > /dev/null <<EOF
+[zulu-openjdk]
+name=zulu-openjdk - Azul Systems Inc., Zulu packages
+baseurl=https://$REPO_HOST/zulu/rpm
+gpgkey=https://repos.azul.com/azul-repo.key
+enabled=1
+gpgcheck=1
+protect=1
+EOF
+RUN yum -y update && \
+yum -q -y install zulu8-jre-8.0.472-1 && \
+yum clean all && \
+rm -rf /var/cache/yum && \
+rm -f /etc/yum.repos.d/zulu-openjdk.repo
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8

@bydga
Copy link

bydga commented Dec 8, 2025

Hello,

I would like to revive this PR. We’ve carefully gone through your previous feedback and have made several updates and improvements to the images and their tagging, including:

  • Changed the repository containing the Dockerfile definitions to https://github.com/AzulSystems/azul-zulu-images so it no longer conflicts with the existing (and hopefully soon-to-be-deprecated) non-official images.
  • Dropped support for the previously unclear/ambiguous “distroless” variant.
  • Reduced supported distros to three (Alpine / Debian / Rocky Linux), representing one per major packaging system (apk / apt / yum).
  • Removed asterisks for specific version installations.
  • Simplified the Dockerfiles by removing unnecessary commands, environment variables, and package installations.

Could you please review the PR again? I am personally taking over this initiative on Azul’s side and would be happy to provide clarification, discuss changes, or make further improvements to get this finalized 🙂

@bydga
Copy link

bydga commented Dec 8, 2025

also mentioning @tianon for the review 🙏

FDelporte added a commit to FDelporte/docker-library_docs that referenced this pull request Dec 8, 2025
FDelporte added a commit to FDelporte/docker-library_docs that referenced this pull request Dec 8, 2025
FDelporte added a commit to FDelporte/docker-library_docs that referenced this pull request Dec 8, 2025
FDelporte added a commit to FDelporte/docker-library_docs that referenced this pull request Dec 8, 2025
FDelporte added a commit to FDelporte/docker-library_docs that referenced this pull request Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants