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 alibaba-dragonwell #12436

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

joeyleeeeeee97
Copy link

@joeyleeeeeee97 joeyleeeeeee97 commented May 16, 2022

#12413

Checklist for Review

NOTE: This checklist is intended for the use of the Official Images maintainers both to track the status of your PR and to help inform you and others of where we're at. As such, please leave the "checking" of items to the repository maintainers. If there is a point below for which you would like to provide additional information or note completion, please do so by commenting on the PR. Thanks! (and thanks for staying patient with us ❤️)

@joeyleeeeeee97

This comment was marked as spam.

@joeyleeeeeee97

This comment was marked as spam.

@joeyleeeeeee97

This comment was marked as spam.

@joeyleeeeeee97

This comment was marked as spam.

@joeyleeeeeee97
Copy link
Author

@yosifkit @tianon
Dragonwell is a customized JDK popular in Alibaba Cloud
https://dragonwell-jdk.io/
https://github.com/alibaba/dragonwell8

We are trying to add it to offical docker hub

@tianon
Copy link
Member

tianon commented Jun 23, 2022

Thank you for your patience. 🙇

(As a note, please do not modify the checklist in the OP here -- we use that for our state tracking in a transparent way, but it only shows up in places like the PR list if it's in the OP, which is why it's there instead of in a comment 🙏 ❤️)

Overall I think this isn't too bad -- I've got a few initial review comments and I hope that together we can make this even better. 😄


SharedTags: xxx

We use SharedTags: for overlapping Windows tags with Linux tags -- in this case, they're not necessary (and can be moved to just use Tags: in all instances I see).


+alibaba-dragonwell:dragonwell-8.11.12_jdk8u332-ga-jdk-centos
+alibaba-dragonwell:dragonwell-8.11.12_jdk8u332-ga-jdk-focal
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-alpine
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-alpine
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-centos7
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-focal
+alibaba-dragonwell:dragonwell-17.0.3.0.3-jdk-centos7
+alibaba-dragonwell:dragonwell-17.0.3.0.3-jdk-focal

These tags are all really repetitive -- is there a reason that you're duplicating dragonwell in the tag names on top of the repository?


+FROM alpine:3.15

These could probably be updated to Alpine 3.16 with some testing 👀

(Although staying on Alpine 3.15 for now is totally fine too -- both are actively supported so you could just as easily update later. It might be a good idea to add something like -alpine3.15 tag aliases for users to pin to a specific Alpine release so that they have a way to revert if/when you do upgrade that, but that's ultimately up to you.)


+RUN apk update && apk add ca-certificates && update-ca-certificates && apk --no-cache add openssl wget
+
+RUN apk add --no-cache tzdata musl-locales musl-locales-lang \
+    && rm -rf /var/cache/apk/*

I think this would have the same end-result with something simpler like this:

RUN apk add --no-cache ca-certificates musl-locales musl-locales-lang openssl tzdata wget

(Using --no-cache should take care of /var/cache/apk and installing ca-certificates shouldn't then require running update-ca-certificates explicitly afterwards 👍)


+ENV JAVA_VERSION jdk-11.0.15+10

This doesn't seem to be used (and appears to mis-match with the version number in BINARY_URL? 😬) so could probably just be removed?


+FROM centos:7

Are you including CentOS variants specifically because they're well-supported and actively recommended by the Dragonwell project, or more "just because" ? (The centos image is not actively maintained, so builds of this variant will become stale very quickly, and I would honestly suggest that you probably want to just remove them for now.)


+# ------------------------------------------------------------------------------
+#               NOTE: THIS DOCKERFILE IS GENERATED VIA "update_multiarch.sh"
+#
+#                       PLEASE DO NOT EDIT IT DIRECTLY.
+# ------------------------------------------------------------------------------

Looking at your repository, this doesn't seem to be accurate, and these Dockerfiles appear to all instead be hand-maintained? I'd suggest removing this notice (or generating your Dockerfiles instead, which is going to help you with maintaining them long-term).

@joeyleeeeeee97
Copy link
Author

joeyleeeeeee97 commented Jun 24, 2022

  • Removed SharedTags
  • for dragonwell in tags: I thought using the exact value from github tag might be a good idea, let users easier to find and locate sources, so current tag is formatted as ${GITHUB_TAG}-jdk-{PLATFORM}
    As tags in dragonwell-8.11.12_jdk8u332-ga
  • update tags with alpine-3.16
  • update apk command
  • ENV JAVA VERSION
    Frankly I am trying to be the same as openjdk https://github.com/docker-library/openjdk/blob/790a2a8e26ad738e1ce7b31220cb4c564d0bb2e1/11/jdk/oraclelinux7/Dockerfile#L35, as some users might expect the same behavior from dragonwell image
  • remove inaccurate note
  • centos images
    After some discussion we thought might still support this, most of our users are using centos, and eclipse-termurin is supporting centos also. So we might keep those.

@yosifkit
Copy link
Member

alibaba-dragonwell:11-jdk-alpine3.16 still has the old apk update/add lines.


The JAVA_VERSION environment variable on the java 11 variants (jdk-11.0.15+10) doesn't seem to match the installed versions.

Output during build:

javac --version
javac 11.0.15.11
java --version
openjdk 11.0.15.11 2022-04-19
OpenJDK Runtime Environment (Alibaba Dragonwell)-11.0.15.11+9-GA (build 11.0.15.11+9)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell)-11.0.15.11+9-GA (build 11.0.15.11+9, mixed mode)

Downloaded jdk files:

dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_x64_alpine-linux.tar.gz
dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_x64_linux.tar.gz
...

Should it be something else like ENV JAVA_VERSION jdk-11.0.15+11 or jdk-11.0.15+9 or jdk-11.0.15?

@github-actions
Copy link

Diff for 60fbd87:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index bdfae4a..5629070 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,48 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Joeylee <[email protected]> (@joeylee)
+GitRepo: https://github.com/dragonwell-releng/dragonwell-containers.git
+
+Tags: dragonwell-8.11.12_jdk8u332-ga-jdk-centos, 8-jdk-centos, 8-centos
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 8/jdk/centos
+File: Dockerfile.releases.full
+
+Tags: dragonwell-8.11.12_jdk8u332-ga-jdk-focal, 8-jdk-focal, 8-focal
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 8/jdk/ubuntu
+File: Dockerfile.releases.full
+
+Tags: dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-alpine3.16, 11-jdk-alpine3.16, 11-alpine3.16
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 11/jdk/alpine
+File: Dockerfile.releases.full
+
+Tags: dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-centos7, 11-jdk-centos7, 11-centos7
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 11/jdk/centos
+File: Dockerfile.releases.full
+
+Tags: dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-focal, 11-jdk-focal, 11-focal
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 11/jdk/ubuntu
+File: Dockerfile.releases.full
+
+Tags: dragonwell-17.0.3.0.3-jdk-alpine3.16, 17-jdk-alpine3.16, 17-alpine3.16
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 17/jdk/alpine
+File: Dockerfile.releases.full
+
+Tags: dragonwell-17.0.3.0.3-jdk-centos7, 17-jdk-centos7, 17-centos7
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 17/jdk/centos
+File: Dockerfile.releases.full
+
+Tags: dragonwell-17.0.3.0.3-jdk-focal, 17-jdk-focal, 17-focal
+Architectures: amd64, arm64v8
+GitCommit: c9a4f67b5fceee5a8be5ed75a45c5e5ca5f8482d
+Directory: 17/jdk/ubuntu
+File: Dockerfile.releases.full
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..f131a60 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,24 @@
+alibaba-dragonwell:8-centos
+alibaba-dragonwell:8-focal
+alibaba-dragonwell:8-jdk-centos
+alibaba-dragonwell:8-jdk-focal
+alibaba-dragonwell:11-alpine3.16
+alibaba-dragonwell:11-centos7
+alibaba-dragonwell:11-focal
+alibaba-dragonwell:11-jdk-alpine3.16
+alibaba-dragonwell:11-jdk-centos7
+alibaba-dragonwell:11-jdk-focal
+alibaba-dragonwell:17-alpine3.16
+alibaba-dragonwell:17-centos7
+alibaba-dragonwell:17-focal
+alibaba-dragonwell:17-jdk-alpine3.16
+alibaba-dragonwell:17-jdk-centos7
+alibaba-dragonwell:17-jdk-focal
+alibaba-dragonwell:dragonwell-8.11.12_jdk8u332-ga-jdk-centos
+alibaba-dragonwell:dragonwell-8.11.12_jdk8u332-ga-jdk-focal
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-alpine3.16
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-centos7
+alibaba-dragonwell:dragonwell-11.0.15.11.9_jdk-11.0.15-ga-jdk-focal
+alibaba-dragonwell:dragonwell-17.0.3.0.3-jdk-alpine3.16
+alibaba-dragonwell:dragonwell-17.0.3.0.3-jdk-centos7
+alibaba-dragonwell:dragonwell-17.0.3.0.3-jdk-focal
diff --git a/alibaba-dragonwell_11-alpine3.16/Dockerfile.releases.full b/alibaba-dragonwell_11-alpine3.16/Dockerfile.releases.full
new file mode 100644
index 0000000..46b1ed6
--- /dev/null
+++ b/alibaba-dragonwell_11-alpine3.16/Dockerfile.releases.full
@@ -0,0 +1,55 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM alpine:3.16
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN apk add --no-cache ca-certificates musl-locales musl-locales-lang openssl tzdata wget
+
+
+ENV JAVA_VERSION jdk-11.0.15.11+9
+
+RUN set -eux; \
+    ARCH="$(apk --print-arch)"; \
+    case "${ARCH}" in \
+       amd64|x86_64) \
+         ESUM='52ad29ef644b8c268cf2c5b3d5fc15a9b0be6f246407ddce92e547b8473b642f'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell11/releases/download/dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_x64_alpine-linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+	  wget -O /tmp/openjdk.tar.gz ${BINARY_URL}; \
+	  echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+	  mkdir -p /opt/java/openjdk; \
+	  tar --extract \
+	      --file /tmp/openjdk.tar.gz \
+	      --directory /opt/java/openjdk \
+	      --strip-components 1 \
+	      --no-same-owner \
+	  ; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_11-centos7/Dockerfile.releases.full b/alibaba-dragonwell_11-centos7/Dockerfile.releases.full
new file mode 100644
index 0000000..58f6338
--- /dev/null
+++ b/alibaba-dragonwell_11-centos7/Dockerfile.releases.full
@@ -0,0 +1,55 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN yum install -y tzdata openssl curl ca-certificates fontconfig gzip tar \
+    && yum clean all
+
+ENV JAVA_VERSION jdk-11.0.15.11+9
+
+RUN set -eux; \
+    ARCH="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='459bec951d0b2d610bda8cc1fd649406abe4edc8bcda78568b2fca828993f040'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell11/releases/download/dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='2406a9b12682d443aa606213d6c00ec83d96b2d157a70728edd6b9bca80c4eab'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell11/releases/download/dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_x64_linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_11-focal/Dockerfile.releases.full b/alibaba-dragonwell_11-focal/Dockerfile.releases.full
new file mode 100644
index 0000000..40ecc94
--- /dev/null
+++ b/alibaba-dragonwell_11-focal/Dockerfile.releases.full
@@ -0,0 +1,58 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM ubuntu:20.04
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN apt-get update \
+    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales \
+    && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
+    && locale-gen en_US.UTF-8 \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV JAVA_VERSION jdk-11.0.15.11+9
+
+RUN set -eux; \
+    ARCH="$(dpkg --print-architecture)"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='459bec951d0b2d610bda8cc1fd649406abe4edc8bcda78568b2fca828993f040'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell11/releases/download/dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='2406a9b12682d443aa606213d6c00ec83d96b2d157a70728edd6b9bca80c4eab'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell11/releases/download/dragonwell-11.0.15.11.9_jdk-11.0.15-ga/Alibaba_Dragonwell_11.0.15.11.9_x64_linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_17-alpine3.16/Dockerfile.releases.full b/alibaba-dragonwell_17-alpine3.16/Dockerfile.releases.full
new file mode 100644
index 0000000..6694fc7
--- /dev/null
+++ b/alibaba-dragonwell_17-alpine3.16/Dockerfile.releases.full
@@ -0,0 +1,55 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM alpine:3.16
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+
+RUN apk add --no-cache ca-certificates musl-locales musl-locales-lang openssl tzdata wget
+
+ENV JAVA_VERSION jdk-17.0.3.0.3+7
+
+RUN set -eux; \
+    ARCH="$(apk --print-arch)"; \
+    case "${ARCH}" in \
+       amd64|x86_64) \
+         ESUM='4620312ff9fa2772aed71315280af7c4c65cfa91e4a77bd47f6471ed279ed8a7'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.3.0.3%2B7_jdk-17.0.3-ga/Alibaba_Dragonwell_17.0.3.0.3+7_x64_alpine-linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+	  wget -O /tmp/openjdk.tar.gz ${BINARY_URL}; \
+	  echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+	  mkdir -p /opt/java/openjdk; \
+	  tar --extract \
+	      --file /tmp/openjdk.tar.gz \
+	      --directory /opt/java/openjdk \
+	      --strip-components 1 \
+	      --no-same-owner \
+	  ; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_17-centos7/Dockerfile.releases.full b/alibaba-dragonwell_17-centos7/Dockerfile.releases.full
new file mode 100644
index 0000000..c0ab788
--- /dev/null
+++ b/alibaba-dragonwell_17-centos7/Dockerfile.releases.full
@@ -0,0 +1,55 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN yum install -y tzdata openssl curl ca-certificates fontconfig gzip tar binutils \
+    && yum clean all
+
+ENV JAVA_VERSION jdk-17.0.3.0.3+7
+
+RUN set -eux; \
+    ARCH="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='84c9571fccb7e028c59657712e686cd1560d760a560ee8c76d0f99e2795aafcd'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.3.0.3%2B7_jdk-17.0.3-ga/Alibaba_Dragonwell_17.0.3.0.3+7_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='8431922266c1a476e1ca2d49c68110c22ec4f989ca0438b0b089ecd9c7ade0ce'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.3.0.3%2B7_jdk-17.0.3-ga/Alibaba_Dragonwell_17.0.3.0.3+7_x64_linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_17-focal/Dockerfile.releases.full b/alibaba-dragonwell_17-focal/Dockerfile.releases.full
new file mode 100644
index 0000000..f46fa8c
--- /dev/null
+++ b/alibaba-dragonwell_17-focal/Dockerfile.releases.full
@@ -0,0 +1,58 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM ubuntu:20.04
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN apt-get update \
+    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales binutils \
+    && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
+    && locale-gen en_US.UTF-8 \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV JAVA_VERSION jdk-17.0.3.0.3+7
+
+RUN set -eux; \
+    ARCH="$(dpkg --print-architecture)"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='84c9571fccb7e028c59657712e686cd1560d760a560ee8c76d0f99e2795aafcd'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.3.0.3%2B7_jdk-17.0.3-ga/Alibaba_Dragonwell_17.0.3.0.3+7_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='8431922266c1a476e1ca2d49c68110c22ec4f989ca0438b0b089ecd9c7ade0ce'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell17/releases/download/dragonwell-17.0.3.0.3%2B7_jdk-17.0.3-ga/Alibaba_Dragonwell_17.0.3.0.3+7_x64_linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac --version && javac --version \
+    && echo java --version && java --version \
+    && echo Complete.
+
+CMD ["jshell"]
diff --git a/alibaba-dragonwell_8-centos/Dockerfile.releases.full b/alibaba-dragonwell_8-centos/Dockerfile.releases.full
new file mode 100644
index 0000000..058ac6a
--- /dev/null
+++ b/alibaba-dragonwell_8-centos/Dockerfile.releases.full
@@ -0,0 +1,53 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM centos:7
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN yum install -y tzdata openssl curl ca-certificates fontconfig gzip tar \
+    && yum clean all
+
+ENV JAVA_VERSION jdk8u332-b09
+
+RUN set -eux; \
+    ARCH="$(objdump="$(command -v objdump)" && objdump --file-headers "$objdump" | awk -F '[:,]+[[:space:]]+' '$1 == "architecture" { print $2 }')"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='544a2b75c1b5963664395fba4b58bc6012cd1db36b68c0f1886d81d657a0b24b'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell8/releases/download/dragonwell-8.11.12_jdk8u332-ga/Alibaba_Dragonwell_8.11.12_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='03923f200dffddf9eee2aadc0c495674fe0b87cc2eece94a9a8dec84812d12bd'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell8/releases/download/dragonwell-8.11.12_jdk8u332-ga/Alibaba_Dragonwell_8.11.12_x64_linux.tar.gz'; \
+         ;; \
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac -version && javac -version \
+    && echo java -version && java -version \
+    && echo Complete.
diff --git a/alibaba-dragonwell_8-focal/Dockerfile.releases.full b/alibaba-dragonwell_8-focal/Dockerfile.releases.full
new file mode 100644
index 0000000..4c8d807
--- /dev/null
+++ b/alibaba-dragonwell_8-focal/Dockerfile.releases.full
@@ -0,0 +1,57 @@
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+FROM ubuntu:20.04
+
+ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
+
+RUN apt-get update \
+    && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales \
+    && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \
+    && locale-gen en_US.UTF-8 \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV JAVA_VERSION jdk8u332-b09
+
+RUN set -eux; \
+    ARCH="$(dpkg --print-architecture)"; \
+    case "${ARCH}" in \
+       aarch64|arm64) \
+         ESUM='544a2b75c1b5963664395fba4b58bc6012cd1db36b68c0f1886d81d657a0b24b'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell8/releases/download/dragonwell-8.11.12_jdk8u332-ga/Alibaba_Dragonwell_8.11.12_aarch64_linux.tar.gz'; \
+         ;; \
+       amd64|i386:x86-64) \
+         ESUM='03923f200dffddf9eee2aadc0c495674fe0b87cc2eece94a9a8dec84812d12bd'; \
+         BINARY_URL='https://github.com/alibaba/dragonwell8/releases/download/dragonwell-8.11.12_jdk8u332-ga/Alibaba_Dragonwell_8.11.12_x64_linux.tar.gz'; \
+         ;; \
+
+       *) \
+         echo "Unsupported arch: ${ARCH}"; \
+         exit 1; \
+         ;; \
+    esac; \
+    curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; \
+    echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; \
+    mkdir -p /opt/java/openjdk; \
+    cd /opt/java/openjdk; \
+    tar -xf /tmp/openjdk.tar.gz --strip-components=1; \
+    rm -rf /tmp/openjdk.tar.gz;
+
+ENV JAVA_HOME=/opt/java/openjdk \
+    PATH="/opt/java/openjdk/bin:$PATH"
+
+RUN echo Verifying install ... \
+    && echo javac -version && javac -version \
+    && echo java -version && java -version \
+    && echo Complete.

@joeyleeeeeee97
Copy link
Author

@yosifkit

  • old apk update/add lines.
    Yes. I forgot to change one file, thanks for noticing.

  • corrected JAVA_VERSION to use the exact value with dragonwell
    For 11, we are using jdk-11.0.15.11+9, this is from openjdk jdk-11.0.15+9 but we added 11 as extended version for our development changes, for senarios like still from latest ga upstream , but we did some major changes on our features.

@yosifkit
Copy link
Member

yosifkit commented Jul 2, 2022

It looks like the dragonwell-releng/dragonwell-containers repo uses a main branch, so the library files will need a GitFetch: refs/heads/main (failing github actions check). Otherwise, the rest looks good to me.

@tianon
Copy link
Member

tianon commented Apr 5, 2024

I'm updating the status of this PR to "draft" for now. When it's ready for re-review, please remove the draft status and leave a comment (GitHub unfortunately does not notify maintainers for draft state changes).

@tianon tianon marked this pull request as draft April 5, 2024 23:09
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.

3 participants