Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zulu Images from Azul systems #16141

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

azul-publisher
Copy link

Documentation MR: docker-library/docs#2320

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

This comment has been minimized.

Copy link

Diff for 630a7e0:
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..03f970d 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,86 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Azul 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/zulu-openjdk/zulu-openjdk
+
+Tags: 8-alpine, 8u382-alpine, 8u382-8.72.0.17-alpine
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: alpine/8-latest
+
+Tags: 8-centos, 8u382-centos, 8u382-8.72.0.17-centos
+Architectures: amd64, arm64v8
+GitCommit: a84ae34861c5e41fbb2f7c62d11abe3a18071c9f
+Directory: centos/8-latest
+
+Tags: 8-debian, 8u382-debian, 8u382-8.72.0.17-debian
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: debian/8-latest
+
+Tags: 8-ubuntu, 8u382-ubuntu, 8u382-8.72.0.17-ubuntu
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: ubuntu/8-latest
+
+Tags: 11-alpine, 11.0.20-alpine, 11.0.20-11.66.15-alpine
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: alpine/11-latest
+
+Tags: 11-centos, 11.0.20-centos, 11.0.20-11.66.15-centos
+Architectures: amd64, arm64v8
+GitCommit: a84ae34861c5e41fbb2f7c62d11abe3a18071c9f
+Directory: centos/11-latest
+
+Tags: 11-debian, 11.0.20-debian, 11.0.20-11.66.15-debian
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: debian/11-latest
+
+Tags: 11-ubuntu, 11.0.20-ubuntu, 11.0.20-11.66.15-ubuntu
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: ubuntu/11-latest
+
+Tags: 17-alpine, 17.0.8-alpine, 17.0.8-17.44.15-alpine
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: alpine/17-latest
+
+Tags: 17-centos, 17.0.8-centos, 17.0.8-17.44.15-centos
+Architectures: amd64, arm64v8
+GitCommit: a84ae34861c5e41fbb2f7c62d11abe3a18071c9f
+Directory: centos/17-latest
+
+Tags: 17-debian, 17.0.8-debian, 17.0.8-17.44.15-debian
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: debian/17-latest
+
+Tags: 17-distroless, 17.0.8-distroless, 17.0.8-17.44.15-distroless
+GitCommit: a84ae34861c5e41fbb2f7c62d11abe3a18071c9f
+Directory: distroless/17-latest
+
+Tags: 17-ubuntu, 17.0.8-ubuntu, 17.0.8-17.44.15-ubuntu
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: ubuntu/17-latest
+
+Tags: 20-alpine, 20.0.2-alpine, 20.0.2-20.32.11-alpine
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: alpine/20-latest
+
+Tags: 20-centos, 20.0.2-centos, 20.0.2-20.32.11-centos
+Architectures: amd64, arm64v8
+GitCommit: a84ae34861c5e41fbb2f7c62d11abe3a18071c9f
+Directory: centos/20-latest
+
+Tags: 20-debian, 20.0.2-debian, 20.0.2-20.32.11-debian
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: debian/20-latest
+
+Tags: 20-ubuntu, 20.0.2-ubuntu, 20.0.2-20.32.11-ubuntu
+Architectures: amd64, arm64v8
+GitCommit: 63034147c1ec9aab2f3b6aeced311c500f4586d9
+Directory: ubuntu/20-latest
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..8299ba6 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,51 @@
+azul-zulu:8u382-8.72.0.17-alpine
+azul-zulu:8u382-8.72.0.17-centos
+azul-zulu:8u382-8.72.0.17-debian
+azul-zulu:8u382-8.72.0.17-ubuntu
+azul-zulu:8u382-alpine
+azul-zulu:8u382-centos
+azul-zulu:8u382-debian
+azul-zulu:8u382-ubuntu
+azul-zulu:8-alpine
+azul-zulu:8-centos
+azul-zulu:8-debian
+azul-zulu:8-ubuntu
+azul-zulu:11-alpine
+azul-zulu:11-centos
+azul-zulu:11-debian
+azul-zulu:11-ubuntu
+azul-zulu:11.0.20-11.66.15-alpine
+azul-zulu:11.0.20-11.66.15-centos
+azul-zulu:11.0.20-11.66.15-debian
+azul-zulu:11.0.20-11.66.15-ubuntu
+azul-zulu:11.0.20-alpine
+azul-zulu:11.0.20-centos
+azul-zulu:11.0.20-debian
+azul-zulu:11.0.20-ubuntu
+azul-zulu:17-alpine
+azul-zulu:17-centos
+azul-zulu:17-debian
+azul-zulu:17-distroless
+azul-zulu:17-ubuntu
+azul-zulu:17.0.8-17.44.15-alpine
+azul-zulu:17.0.8-17.44.15-centos
+azul-zulu:17.0.8-17.44.15-debian
+azul-zulu:17.0.8-17.44.15-distroless
+azul-zulu:17.0.8-17.44.15-ubuntu
+azul-zulu:17.0.8-alpine
+azul-zulu:17.0.8-centos
+azul-zulu:17.0.8-debian
+azul-zulu:17.0.8-distroless
+azul-zulu:17.0.8-ubuntu
+azul-zulu:20-alpine
+azul-zulu:20-centos
+azul-zulu:20-debian
+azul-zulu:20-ubuntu
+azul-zulu:20.0.2-20.32.11-alpine
+azul-zulu:20.0.2-20.32.11-centos
+azul-zulu:20.0.2-20.32.11-debian
+azul-zulu:20.0.2-20.32.11-ubuntu
+azul-zulu:20.0.2-alpine
+azul-zulu:20.0.2-centos
+azul-zulu:20.0.2-debian
+azul-zulu:20.0.2-ubuntu
diff --git a/azul-zulu_11.0.20-11.66.15-alpine/Dockerfile b/azul-zulu_11.0.20-11.66.15-alpine/Dockerfile
new file mode 100644
index 0000000..a13938a
--- /dev/null
+++ b/azul-zulu_11.0.20-11.66.15-alpine/Dockerfile
@@ -0,0 +1,12 @@
+FROM alpine:3.17
+
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8
+ENV TZ=Etc/UTC
+ARG ZULU_KEY_SHA256=6c6393d4755818a15cf055a5216cffa599f038cd508433faed2226925956509a
+RUN wget --quiet https://cdn.azul.com/public_keys/[email protected] -P /etc/apk/keys/ && \
+    echo "${ZULU_KEY_SHA256}  /etc/apk/keys/[email protected]" | sha256sum -c - && \
+    apk --repository https://repos.azul.com/zulu/alpine --no-cache add zulu11-jdk~=11.0.20 tzdata
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11.0.20-11.66.15-centos/Dockerfile b/azul-zulu_11.0.20-11.66.15-centos/Dockerfile
new file mode 100644
index 0000000..7025b06
--- /dev/null
+++ b/azul-zulu_11.0.20-11.66.15-centos/Dockerfile
@@ -0,0 +1,17 @@
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+ARG ZULU_REPO_SHA256=2724b8be277ec16196b8e9357ed5e506eb791f88f966965a4f4a8bd5c4acdcfe
+ARG ZULU_REPO_VER=1.0.0-1
+
+RUN rpm --import https://repos.azulsystems.com/RPM-GPG-KEY-azulsystems && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    echo "${ZULU_REPO_SHA256}  zulu-repo-${ZULU_REPO_VER}.noarch.rpm" | sha256sum --strict --check - && \
+    rpm -ivh zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    yum -q -y install yum-plugin-versionlock tzdata fontconfig && \
+    yum versionlock zulu11-*-11.0.20-* && \
+    yum -q -y install zulu11-jdk && \
+    yum clean all && \
+    rm -rf /var/cache/yum zulu-repo_${ZULU_REPO_VER}.noarch.rpm
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11.0.20-11.66.15-debian/Dockerfile b/azul-zulu_11.0.20-11.66.15-debian/Dockerfile
new file mode 100644
index 0000000..6838f52
--- /dev/null
+++ b/azul-zulu_11.0.20-11.66.15-debian/Dockerfile
@@ -0,0 +1,21 @@
+FROM debian:bullseye-slim
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    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-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_11.0.20-11.66.15-ubuntu/Dockerfile b/azul-zulu_11.0.20-11.66.15-ubuntu/Dockerfile
new file mode 100644
index 0000000..1c19476
--- /dev/null
+++ b/azul-zulu_11.0.20-11.66.15-ubuntu/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:jammy
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    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-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu11
diff --git a/azul-zulu_17.0.8-17.44.15-alpine/Dockerfile b/azul-zulu_17.0.8-17.44.15-alpine/Dockerfile
new file mode 100644
index 0000000..3396ade
--- /dev/null
+++ b/azul-zulu_17.0.8-17.44.15-alpine/Dockerfile
@@ -0,0 +1,12 @@
+FROM alpine:3.17
+
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8
+ENV TZ=Etc/UTC
+ARG ZULU_KEY_SHA256=6c6393d4755818a15cf055a5216cffa599f038cd508433faed2226925956509a
+RUN wget --quiet https://cdn.azul.com/public_keys/[email protected] -P /etc/apk/keys/ && \
+    echo "${ZULU_KEY_SHA256}  /etc/apk/keys/[email protected]" | sha256sum -c - && \
+    apk --repository https://repos.azul.com/zulu/alpine --no-cache add zulu17-jdk~=17.0.8 tzdata
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17.0.8-17.44.15-centos/Dockerfile b/azul-zulu_17.0.8-17.44.15-centos/Dockerfile
new file mode 100644
index 0000000..1af8612
--- /dev/null
+++ b/azul-zulu_17.0.8-17.44.15-centos/Dockerfile
@@ -0,0 +1,17 @@
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+ARG ZULU_REPO_SHA256=2724b8be277ec16196b8e9357ed5e506eb791f88f966965a4f4a8bd5c4acdcfe
+ARG ZULU_REPO_VER=1.0.0-1
+
+RUN rpm --import https://repos.azulsystems.com/RPM-GPG-KEY-azulsystems && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    echo "${ZULU_REPO_SHA256}  zulu-repo-${ZULU_REPO_VER}.noarch.rpm" | sha256sum --strict --check - && \
+    rpm -ivh zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    yum -q -y install yum-plugin-versionlock tzdata fontconfig && \
+    yum versionlock zulu17-*-17.0.8-* && \
+    yum -q -y install zulu17-jdk && \
+    yum clean all && \
+    rm -rf /var/cache/yum zulu-repo_${ZULU_REPO_VER}.noarch.rpm
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17.0.8-17.44.15-debian/Dockerfile b/azul-zulu_17.0.8-17.44.15-debian/Dockerfile
new file mode 100644
index 0000000..90356ab
--- /dev/null
+++ b/azul-zulu_17.0.8-17.44.15-debian/Dockerfile
@@ -0,0 +1,21 @@
+FROM debian:bullseye-slim
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu17-*\nPin: version 17.0.8-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu17-jdk=17.0.8-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_17.0.8-17.44.15-distroless/Dockerfile b/azul-zulu_17.0.8-17.44.15-distroless/Dockerfile
new file mode 100644
index 0000000..dca6deb
--- /dev/null
+++ b/azul-zulu_17.0.8-17.44.15-distroless/Dockerfile
@@ -0,0 +1,50 @@
+FROM ubuntu:jammy AS builder
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu17-*\nPin: version 17.0.8-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu17-jdk=17.0.8-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
+
+RUN mkdir /emptydir
+
+FROM scratch
+
+COPY --from=builder \
+		/usr/lib/x86_64-linux-gnu/libresolv.so* \
+		/usr/lib/x86_64-linux-gnu/libc.so* \
+		/usr/lib/x86_64-linux-gnu/libdl.so* \
+		/usr/lib/x86_64-linux-gnu/libm.so* \
+		/usr/lib/x86_64-linux-gnu/librt.so* \
+		/usr/lib/x86_64-linux-gnu/libpthread.so* \
+		/usr/lib/x86_64-linux-gnu/libnet.so* \
+	        /usr/lib/x86_64-linux-gnu/libnss_file*.so* \
+		/usr/lib/x86_64-linux-gnu/libnss_dns*.so* \
+		/usr/lib/x86_64-linux-gnu/libz.so* \
+		/lib/x86_64-linux-gnu/
+
+COPY --from=builder \
+		/usr/lib64/ld-linux-x86-64.so.2 \
+		/lib64/
+
+COPY --from=builder /usr/lib/jvm/zulu17-ca-amd64 /usr/lib/jvm/zulu17
+
+COPY --from=builder /emptydir /tmp
+
+ENV PATH="${PATH}:/usr/lib/jvm/zulu17/bin/"
+
+ENTRYPOINT [ "/usr/lib/jvm/zulu17/bin/java" ]
diff --git a/azul-zulu_17.0.8-17.44.15-ubuntu/Dockerfile b/azul-zulu_17.0.8-17.44.15-ubuntu/Dockerfile
new file mode 100644
index 0000000..4681969
--- /dev/null
+++ b/azul-zulu_17.0.8-17.44.15-ubuntu/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:jammy
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu17-*\nPin: version 17.0.8-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu17-jdk=17.0.8-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu17
diff --git a/azul-zulu_20.0.2-20.32.11-alpine/Dockerfile b/azul-zulu_20.0.2-20.32.11-alpine/Dockerfile
new file mode 100644
index 0000000..3f14ff1
--- /dev/null
+++ b/azul-zulu_20.0.2-20.32.11-alpine/Dockerfile
@@ -0,0 +1,12 @@
+FROM alpine:3.17
+
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8
+ENV TZ=Etc/UTC
+ARG ZULU_KEY_SHA256=6c6393d4755818a15cf055a5216cffa599f038cd508433faed2226925956509a
+RUN wget --quiet https://cdn.azul.com/public_keys/[email protected] -P /etc/apk/keys/ && \
+    echo "${ZULU_KEY_SHA256}  /etc/apk/keys/[email protected]" | sha256sum -c - && \
+    apk --repository https://repos.azul.com/zulu/alpine --no-cache add zulu20-jdk~=20.0.2 tzdata
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu20
diff --git a/azul-zulu_20.0.2-20.32.11-centos/Dockerfile b/azul-zulu_20.0.2-20.32.11-centos/Dockerfile
new file mode 100644
index 0000000..a5a6b1d
--- /dev/null
+++ b/azul-zulu_20.0.2-20.32.11-centos/Dockerfile
@@ -0,0 +1,17 @@
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+ARG ZULU_REPO_SHA256=2724b8be277ec16196b8e9357ed5e506eb791f88f966965a4f4a8bd5c4acdcfe
+ARG ZULU_REPO_VER=1.0.0-1
+
+RUN rpm --import https://repos.azulsystems.com/RPM-GPG-KEY-azulsystems && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    echo "${ZULU_REPO_SHA256}  zulu-repo-${ZULU_REPO_VER}.noarch.rpm" | sha256sum --strict --check - && \
+    rpm -ivh zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    yum -q -y install yum-plugin-versionlock tzdata fontconfig && \
+    yum versionlock zulu20-*-20.0.2-* && \
+    yum -q -y install zulu20-jdk && \
+    yum clean all && \
+    rm -rf /var/cache/yum zulu-repo_${ZULU_REPO_VER}.noarch.rpm
+ENV JAVA_HOME=/usr/lib/jvm/zulu20
diff --git a/azul-zulu_20.0.2-20.32.11-debian/Dockerfile b/azul-zulu_20.0.2-20.32.11-debian/Dockerfile
new file mode 100644
index 0000000..7316902
--- /dev/null
+++ b/azul-zulu_20.0.2-20.32.11-debian/Dockerfile
@@ -0,0 +1,21 @@
+FROM debian:bullseye-slim
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu20-*\nPin: version 20.0.2-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu20-jdk=20.0.2-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu20
diff --git a/azul-zulu_20.0.2-20.32.11-ubuntu/Dockerfile b/azul-zulu_20.0.2-20.32.11-ubuntu/Dockerfile
new file mode 100644
index 0000000..cdad97a
--- /dev/null
+++ b/azul-zulu_20.0.2-20.32.11-ubuntu/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:jammy
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu20-*\nPin: version 20.0.2-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu20-jdk=20.0.2-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu20
diff --git a/azul-zulu_8u382-8.72.0.17-alpine/Dockerfile b/azul-zulu_8u382-8.72.0.17-alpine/Dockerfile
new file mode 100644
index 0000000..b3ebf2b
--- /dev/null
+++ b/azul-zulu_8u382-8.72.0.17-alpine/Dockerfile
@@ -0,0 +1,12 @@
+FROM alpine:3.17
+
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US:en
+ENV LC_ALL en_US.UTF-8
+ENV TZ=Etc/UTC
+ARG ZULU_KEY_SHA256=6c6393d4755818a15cf055a5216cffa599f038cd508433faed2226925956509a
+RUN wget --quiet https://cdn.azul.com/public_keys/[email protected] -P /etc/apk/keys/ && \
+    echo "${ZULU_KEY_SHA256}  /etc/apk/keys/[email protected]" | sha256sum -c - && \
+    apk --repository https://repos.azul.com/zulu/alpine --no-cache add zulu8-jdk~=8.0.382 tzdata
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8u382-8.72.0.17-centos/Dockerfile b/azul-zulu_8u382-8.72.0.17-centos/Dockerfile
new file mode 100644
index 0000000..7c8f000
--- /dev/null
+++ b/azul-zulu_8u382-8.72.0.17-centos/Dockerfile
@@ -0,0 +1,17 @@
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+ARG ZULU_REPO_SHA256=2724b8be277ec16196b8e9357ed5e506eb791f88f966965a4f4a8bd5c4acdcfe
+ARG ZULU_REPO_VER=1.0.0-1
+
+RUN rpm --import https://repos.azulsystems.com/RPM-GPG-KEY-azulsystems && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    echo "${ZULU_REPO_SHA256}  zulu-repo-${ZULU_REPO_VER}.noarch.rpm" | sha256sum --strict --check - && \
+    rpm -ivh zulu-repo-${ZULU_REPO_VER}.noarch.rpm && \
+    yum -q -y install yum-plugin-versionlock tzdata fontconfig && \
+    yum versionlock zulu8-*-8.0.382-* && \
+    yum -q -y install zulu8-jdk && \
+    yum clean all && \
+    rm -rf /var/cache/yum zulu-repo_${ZULU_REPO_VER}.noarch.rpm
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8u382-8.72.0.17-debian/Dockerfile b/azul-zulu_8u382-8.72.0.17-debian/Dockerfile
new file mode 100644
index 0000000..cb26cd3
--- /dev/null
+++ b/azul-zulu_8u382-8.72.0.17-debian/Dockerfile
@@ -0,0 +1,21 @@
+FROM debian:bullseye-slim
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu8-*\nPin: version 8.0.382-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu8-jdk=8.0.382-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8
diff --git a/azul-zulu_8u382-8.72.0.17-ubuntu/Dockerfile b/azul-zulu_8u382-8.72.0.17-ubuntu/Dockerfile
new file mode 100644
index 0000000..d883bd9
--- /dev/null
+++ b/azul-zulu_8u382-8.72.0.17-ubuntu/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:jammy
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+ARG ZULU_REPO_VER=1.0.0-3
+ARG ZULU_REPO_SHA256=d08d9610c093b0954c6b278ecc628736e303634331641142fa5096396201f49c
+
+RUN apt-get -qq update && \
+    apt-get -qq -y --no-install-recommends install gnupg software-properties-common locales curl tzdata && \
+    echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && \
+    locale-gen en_US.UTF-8 && \
+    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 && \
+    curl -sLO https://cdn.azul.com/zulu/bin/zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    echo "${ZULU_REPO_SHA256} zulu-repo_${ZULU_REPO_VER}_all.deb" | sha256sum --strict --check - && \
+    dpkg -i zulu-repo_${ZULU_REPO_VER}_all.deb && \
+    apt-get -qq update && \
+    echo "Package: zulu8-*\nPin: version 8.0.382-*\nPin-Priority: 1001" > /etc/apt/preferences && \
+    apt-get -qq -y --no-install-recommends install zulu8-jdk=8.0.382-* && \
+    apt-get -qq -y purge --auto-remove gnupg software-properties-common curl && \
+    rm -rf /var/lib/apt/lists/* zulu-repo_${ZULU_REPO_VER}_all.deb
+
+ENV JAVA_HOME=/usr/lib/jvm/zulu8

@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

@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. ❤️

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.

6 participants