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

Move 8 and 11 to consume from https://adoptopenjdk.net/upstream.html #322

Merged
merged 6 commits into from
May 24, 2019

Conversation

tianon
Copy link
Member

@tianon tianon commented May 22, 2019

Closes #320

These binaries are built by Red Hat on behalf of the OpenJDK jdk8u and jdk11u projects. The binaries are created from the unmodified source code at OpenJDK.

So to put that another way and be explicitly clear, the builds from https://adoptopenjdk.net/upstream.html are not AdoptOpenJDK, but are merely hosted/enabled by the AdoptOpenJDK project as explicitly vanilla builds of the upstream OpenJDK project blessed/supported by the 8u/11u project lead. For context, see #320 (comment):

I am the OpenJDK 8 and 11 Updates OpenJDK project lead.

Concrete (potentially breaking) changes that are a consequence of this:

  1. no more OpenJDK 7 images (see OpenJDK 8u212 and 11.0.3 image quality concerns #320 (comment) -- "7 is still alive but only receives security updates" and "compatibility between 7 and 8 seems to be good enough in most cases")

  2. no more OpenJDK 11 JRE images (see OpenJDK 8u212 and 11.0.3 image quality concerns #320 (comment) -- "JDK 11 has no official JRE build. The reason for this is that the jlink tool allows users to create precisely-targeted stripped JDK images for their applications, and this is IMO better for Docker than a JRE image.")

  3. the way OpenJDK is installed in 8 and 11 images is now quite different, and there will be some breakage expected -- I've tried to minimize that as much as possible, but there's only so much I can do here

  4. no more OpenJDK 8 Alpine images (Alpine/musl is not officially supported by the OpenJDK project, so this reflects that -- see "Project Portola" for the Alpine porting efforts which I understand are still in need of help)

  5. supported architectures are now decreased to match what's "officially" published -- for 8, we drop to just amd64, for 11 we drop to amd64 and arm64v8

@theRealAph if you'd be willing to at least take a cursory look over this, I'd really appreciate it ❤️ (probably focused on either the Dockerfile-adopt-*.template files or one specific JDK version -- they're all generated from that same content so there's no reason to actually hand-review them all 😅)

For extra visibility, explicit CC to the maintainers of other official images which are FROM openjdk:

I've personally looked at tomcat, and the practical implications there are going to be that we switch from being only JRE variants to being only JDK variants (since we need the JDK to compile Tomcat Native and it wasn't worth doing the legwork to make that work just for OpenJDK 8 JRE, and jlink doesn't work there because tomcat is intended to host arbitrary user code).

I also think it's worthwhile to point out the following other existing (and in-progress) JDK official images:

Closes #309
Closes #303
Closes #244
Closes #189
Closes #278
Closes #217
Closes #73

@tianon
Copy link
Member Author

tianon commented May 22, 2019

`bashbrew list` Diff:
--- /dev/fd/63	2019-05-22 16:26:01.809544532 -0700
+++ /dev/fd/62	2019-05-22 16:26:01.809544532 -0700
@@ -202,111 +202,129 @@
 openjdk:11.0-slim
 openjdk:11-jdk-slim
 openjdk:11-slim
-openjdk:11.0.3-jre-stretch
-openjdk:11.0-jre-stretch
-openjdk:11-jre-stretch
-openjdk:11.0.3-jre
-openjdk:11.0-jre
-openjdk:11-jre
-openjdk:11.0.3-jre-slim-stretch
-openjdk:11.0-jre-slim-stretch
-openjdk:11-jre-slim-stretch
-openjdk:11.0.3-jre-slim
-openjdk:11.0-jre-slim
-openjdk:11-jre-slim
+openjdk:11.0.3-jdk-windowsservercore-1809
+openjdk:11.0.3-windowsservercore-1809
+openjdk:11.0-jdk-windowsservercore-1809
+openjdk:11.0-windowsservercore-1809
+openjdk:11-jdk-windowsservercore-1809
+openjdk:11-windowsservercore-1809
+openjdk:11.0.3-jdk-windowsservercore
+openjdk:11.0.3-windowsservercore
+openjdk:11.0-jdk-windowsservercore
+openjdk:11.0-windowsservercore
+openjdk:11-jdk-windowsservercore
+openjdk:11-windowsservercore
+openjdk:11.0.3-jdk-windowsservercore-1803
+openjdk:11.0.3-windowsservercore-1803
+openjdk:11.0-jdk-windowsservercore-1803
+openjdk:11.0-windowsservercore-1803
+openjdk:11-jdk-windowsservercore-1803
+openjdk:11-windowsservercore-1803
+openjdk:11.0.3-jdk-windowsservercore
+openjdk:11.0.3-windowsservercore
+openjdk:11.0-jdk-windowsservercore
+openjdk:11.0-windowsservercore
+openjdk:11-jdk-windowsservercore
+openjdk:11-windowsservercore
+openjdk:11.0.3-jdk-windowsservercore-ltsc2016
+openjdk:11.0.3-windowsservercore-ltsc2016
+openjdk:11.0-jdk-windowsservercore-ltsc2016
+openjdk:11.0-windowsservercore-ltsc2016
+openjdk:11-jdk-windowsservercore-ltsc2016
+openjdk:11-windowsservercore-ltsc2016
+openjdk:11.0.3-jdk-windowsservercore
+openjdk:11.0.3-windowsservercore
+openjdk:11.0-jdk-windowsservercore
+openjdk:11.0-windowsservercore
+openjdk:11-jdk-windowsservercore
+openjdk:11-windowsservercore
+openjdk:8u212-b04-jdk-stretch
+openjdk:8u212-b04-stretch
 openjdk:8u212-jdk-stretch
 openjdk:8u212-stretch
 openjdk:8-jdk-stretch
 openjdk:8-stretch
+openjdk:8u212-b04-jdk
+openjdk:8u212-b04
 openjdk:8u212-jdk
 openjdk:8u212
 openjdk:8-jdk
 openjdk:8
+openjdk:8u212-b04-jdk-slim-stretch
+openjdk:8u212-b04-slim-stretch
 openjdk:8u212-jdk-slim-stretch
 openjdk:8u212-slim-stretch
 openjdk:8-jdk-slim-stretch
 openjdk:8-slim-stretch
+openjdk:8u212-b04-jdk-slim
+openjdk:8u212-b04-slim
 openjdk:8u212-jdk-slim
 openjdk:8u212-slim
 openjdk:8-jdk-slim
 openjdk:8-slim
-openjdk:8u212-jdk-alpine3.9
-openjdk:8u212-alpine3.9
-openjdk:8-jdk-alpine3.9
-openjdk:8-alpine3.9
-openjdk:8u212-jdk-alpine
-openjdk:8u212-alpine
-openjdk:8-jdk-alpine
-openjdk:8-alpine
+openjdk:8u212-b04-jdk-windowsservercore-1809
+openjdk:8u212-b04-windowsservercore-1809
 openjdk:8u212-jdk-windowsservercore-1809
 openjdk:8u212-windowsservercore-1809
 openjdk:8-jdk-windowsservercore-1809
 openjdk:8-windowsservercore-1809
+openjdk:8u212-b04-jdk-windowsservercore
+openjdk:8u212-b04-windowsservercore
 openjdk:8u212-jdk-windowsservercore
 openjdk:8u212-windowsservercore
 openjdk:8-jdk-windowsservercore
 openjdk:8-windowsservercore
+openjdk:8u212-b04-jdk-windowsservercore-1803
+openjdk:8u212-b04-windowsservercore-1803
 openjdk:8u212-jdk-windowsservercore-1803
 openjdk:8u212-windowsservercore-1803
 openjdk:8-jdk-windowsservercore-1803
 openjdk:8-windowsservercore-1803
+openjdk:8u212-b04-jdk-windowsservercore
+openjdk:8u212-b04-windowsservercore
 openjdk:8u212-jdk-windowsservercore
 openjdk:8u212-windowsservercore
 openjdk:8-jdk-windowsservercore
 openjdk:8-windowsservercore
+openjdk:8u212-b04-jdk-windowsservercore-ltsc2016
+openjdk:8u212-b04-windowsservercore-ltsc2016
 openjdk:8u212-jdk-windowsservercore-ltsc2016
 openjdk:8u212-windowsservercore-ltsc2016
 openjdk:8-jdk-windowsservercore-ltsc2016
 openjdk:8-windowsservercore-ltsc2016
+openjdk:8u212-b04-jdk-windowsservercore
+openjdk:8u212-b04-windowsservercore
 openjdk:8u212-jdk-windowsservercore
 openjdk:8u212-windowsservercore
 openjdk:8-jdk-windowsservercore
 openjdk:8-windowsservercore
+openjdk:8u212-b04-jre-stretch
 openjdk:8u212-jre-stretch
 openjdk:8-jre-stretch
+openjdk:8u212-b04-jre
 openjdk:8u212-jre
 openjdk:8-jre
+openjdk:8u212-b04-jre-slim-stretch
 openjdk:8u212-jre-slim-stretch
 openjdk:8-jre-slim-stretch
+openjdk:8u212-b04-jre-slim
 openjdk:8u212-jre-slim
 openjdk:8-jre-slim
-openjdk:8u212-jre-alpine3.9
-openjdk:8-jre-alpine3.9
-openjdk:8u212-jre-alpine
-openjdk:8-jre-alpine
-openjdk:7u221-jdk-jessie
-openjdk:7u221-jessie
-openjdk:7-jdk-jessie
-openjdk:7-jessie
-openjdk:7u221-jdk
-openjdk:7u221
-openjdk:7-jdk
-openjdk:7
-openjdk:7u221-jdk-slim-jessie
-openjdk:7u221-slim-jessie
-openjdk:7-jdk-slim-jessie
-openjdk:7-slim-jessie
-openjdk:7u221-jdk-slim
-openjdk:7u221-slim
-openjdk:7-jdk-slim
-openjdk:7-slim
-openjdk:7u211-jdk-alpine3.9
-openjdk:7u211-alpine3.9
-openjdk:7-jdk-alpine3.9
-openjdk:7-alpine3.9
-openjdk:7u211-jdk-alpine
-openjdk:7u211-alpine
-openjdk:7-jdk-alpine
-openjdk:7-alpine
-openjdk:7u221-jre-jessie
-openjdk:7-jre-jessie
-openjdk:7u221-jre
-openjdk:7-jre
-openjdk:7u221-jre-slim-jessie
-openjdk:7-jre-slim-jessie
-openjdk:7u221-jre-slim
-openjdk:7-jre-slim
-openjdk:7u211-jre-alpine3.9
-openjdk:7-jre-alpine3.9
-openjdk:7u211-jre-alpine
-openjdk:7-jre-alpine
+openjdk:8u212-b04-jre-windowsservercore-1809
+openjdk:8u212-jre-windowsservercore-1809
+openjdk:8-jre-windowsservercore-1809
+openjdk:8u212-b04-jre-windowsservercore
+openjdk:8u212-jre-windowsservercore
+openjdk:8-jre-windowsservercore
+openjdk:8u212-b04-jre-windowsservercore-1803
+openjdk:8u212-jre-windowsservercore-1803
+openjdk:8-jre-windowsservercore-1803
+openjdk:8u212-b04-jre-windowsservercore
+openjdk:8u212-jre-windowsservercore
+openjdk:8-jre-windowsservercore
+openjdk:8u212-b04-jre-windowsservercore-ltsc2016
+openjdk:8u212-jre-windowsservercore-ltsc2016
+openjdk:8-jre-windowsservercore-ltsc2016
+openjdk:8u212-b04-jre-windowsservercore
+openjdk:8u212-jre-windowsservercore
+openjdk:8-jre-windowsservercore
`bashbrew cat` Diff:
--- /dev/fd/63	2019-05-22 16:26:26.168867070 -0700
+++ /dev/fd/62	2019-05-22 16:26:26.168867070 -0700
@@ -59,107 +59,92 @@
 
 Tags: 11.0.3-jdk-stretch, 11.0.3-stretch, 11.0-jdk-stretch, 11.0-stretch, 11-jdk-stretch, 11-stretch
 SharedTags: 11.0.3-jdk, 11.0.3, 11.0-jdk, 11.0, 11-jdk, 11
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 178c542fbb93a8f8a42e331b73a1214c9d8ba81d
+Architectures: amd64, arm64v8
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 11/jdk
 
 Tags: 11.0.3-jdk-slim-stretch, 11.0.3-slim-stretch, 11.0-jdk-slim-stretch, 11.0-slim-stretch, 11-jdk-slim-stretch, 11-slim-stretch, 11.0.3-jdk-slim, 11.0.3-slim, 11.0-jdk-slim, 11.0-slim, 11-jdk-slim, 11-slim
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 178c542fbb93a8f8a42e331b73a1214c9d8ba81d
+Architectures: amd64, arm64v8
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 11/jdk/slim
 
-Tags: 11.0.3-jre-stretch, 11.0-jre-stretch, 11-jre-stretch
-SharedTags: 11.0.3-jre, 11.0-jre, 11-jre
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 178c542fbb93a8f8a42e331b73a1214c9d8ba81d
-Directory: 11/jre
-
-Tags: 11.0.3-jre-slim-stretch, 11.0-jre-slim-stretch, 11-jre-slim-stretch, 11.0.3-jre-slim, 11.0-jre-slim, 11-jre-slim
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: 178c542fbb93a8f8a42e331b73a1214c9d8ba81d
-Directory: 11/jre/slim
-
-Tags: 8u212-jdk-stretch, 8u212-stretch, 8-jdk-stretch, 8-stretch
-SharedTags: 8u212-jdk, 8u212, 8-jdk, 8
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: b8ce9eff38451de3282b2eb2bcd8b520fb95e1ce
+Tags: 11.0.3-jdk-windowsservercore-1809, 11.0.3-windowsservercore-1809, 11.0-jdk-windowsservercore-1809, 11.0-windowsservercore-1809, 11-jdk-windowsservercore-1809, 11-windowsservercore-1809
+SharedTags: 11.0.3-jdk-windowsservercore, 11.0.3-windowsservercore, 11.0-jdk-windowsservercore, 11.0-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 11/jdk/windows/windowsservercore-1809
+Constraints: windowsservercore-1809
+
+Tags: 11.0.3-jdk-windowsservercore-1803, 11.0.3-windowsservercore-1803, 11.0-jdk-windowsservercore-1803, 11.0-windowsservercore-1803, 11-jdk-windowsservercore-1803, 11-windowsservercore-1803
+SharedTags: 11.0.3-jdk-windowsservercore, 11.0.3-windowsservercore, 11.0-jdk-windowsservercore, 11.0-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 11/jdk/windows/windowsservercore-1803
+Constraints: windowsservercore-1803
+
+Tags: 11.0.3-jdk-windowsservercore-ltsc2016, 11.0.3-windowsservercore-ltsc2016, 11.0-jdk-windowsservercore-ltsc2016, 11.0-windowsservercore-ltsc2016, 11-jdk-windowsservercore-ltsc2016, 11-windowsservercore-ltsc2016
+SharedTags: 11.0.3-jdk-windowsservercore, 11.0.3-windowsservercore, 11.0-jdk-windowsservercore, 11.0-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 11/jdk/windows/windowsservercore-ltsc2016
+Constraints: windowsservercore-ltsc2016
+
+Tags: 8u212-b04-jdk-stretch, 8u212-b04-stretch, 8u212-jdk-stretch, 8u212-stretch, 8-jdk-stretch, 8-stretch
+SharedTags: 8u212-b04-jdk, 8u212-b04, 8u212-jdk, 8u212, 8-jdk, 8
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jdk
 
-Tags: 8u212-jdk-slim-stretch, 8u212-slim-stretch, 8-jdk-slim-stretch, 8-slim-stretch, 8u212-jdk-slim, 8u212-slim, 8-jdk-slim, 8-slim
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: b8ce9eff38451de3282b2eb2bcd8b520fb95e1ce
+Tags: 8u212-b04-jdk-slim-stretch, 8u212-b04-slim-stretch, 8u212-jdk-slim-stretch, 8u212-slim-stretch, 8-jdk-slim-stretch, 8-slim-stretch, 8u212-b04-jdk-slim, 8u212-b04-slim, 8u212-jdk-slim, 8u212-slim, 8-jdk-slim, 8-slim
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jdk/slim
 
-Tags: 8u212-jdk-alpine3.9, 8u212-alpine3.9, 8-jdk-alpine3.9, 8-alpine3.9, 8u212-jdk-alpine, 8u212-alpine, 8-jdk-alpine, 8-alpine
-Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: ec1553cccfb87c5f53a38555771fa6d13cebfcba
-Directory: 8/jdk/alpine
-
-Tags: 8u212-jdk-windowsservercore-1809, 8u212-windowsservercore-1809, 8-jdk-windowsservercore-1809, 8-windowsservercore-1809
-SharedTags: 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
+Tags: 8u212-b04-jdk-windowsservercore-1809, 8u212-b04-windowsservercore-1809, 8u212-jdk-windowsservercore-1809, 8u212-windowsservercore-1809, 8-jdk-windowsservercore-1809, 8-windowsservercore-1809
+SharedTags: 8u212-b04-jdk-windowsservercore, 8u212-b04-windowsservercore, 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
 Architectures: windows-amd64
-GitCommit: d617d7e4b951735c512f3d5ac7672f7394115c91
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jdk/windows/windowsservercore-1809
 Constraints: windowsservercore-1809
 
-Tags: 8u212-jdk-windowsservercore-1803, 8u212-windowsservercore-1803, 8-jdk-windowsservercore-1803, 8-windowsservercore-1803
-SharedTags: 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
+Tags: 8u212-b04-jdk-windowsservercore-1803, 8u212-b04-windowsservercore-1803, 8u212-jdk-windowsservercore-1803, 8u212-windowsservercore-1803, 8-jdk-windowsservercore-1803, 8-windowsservercore-1803
+SharedTags: 8u212-b04-jdk-windowsservercore, 8u212-b04-windowsservercore, 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
 Architectures: windows-amd64
-GitCommit: d617d7e4b951735c512f3d5ac7672f7394115c91
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jdk/windows/windowsservercore-1803
 Constraints: windowsservercore-1803
 
-Tags: 8u212-jdk-windowsservercore-ltsc2016, 8u212-windowsservercore-ltsc2016, 8-jdk-windowsservercore-ltsc2016, 8-windowsservercore-ltsc2016
-SharedTags: 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
+Tags: 8u212-b04-jdk-windowsservercore-ltsc2016, 8u212-b04-windowsservercore-ltsc2016, 8u212-jdk-windowsservercore-ltsc2016, 8u212-windowsservercore-ltsc2016, 8-jdk-windowsservercore-ltsc2016, 8-windowsservercore-ltsc2016
+SharedTags: 8u212-b04-jdk-windowsservercore, 8u212-b04-windowsservercore, 8u212-jdk-windowsservercore, 8u212-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
 Architectures: windows-amd64
-GitCommit: d617d7e4b951735c512f3d5ac7672f7394115c91
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jdk/windows/windowsservercore-ltsc2016
 Constraints: windowsservercore-ltsc2016
 
-Tags: 8u212-jre-stretch, 8-jre-stretch
-SharedTags: 8u212-jre, 8-jre
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: b8ce9eff38451de3282b2eb2bcd8b520fb95e1ce
+Tags: 8u212-b04-jre-stretch, 8u212-jre-stretch, 8-jre-stretch
+SharedTags: 8u212-b04-jre, 8u212-jre, 8-jre
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jre
 
-Tags: 8u212-jre-slim-stretch, 8-jre-slim-stretch, 8u212-jre-slim, 8-jre-slim
-Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: b8ce9eff38451de3282b2eb2bcd8b520fb95e1ce
+Tags: 8u212-b04-jre-slim-stretch, 8u212-jre-slim-stretch, 8-jre-slim-stretch, 8u212-b04-jre-slim, 8u212-jre-slim, 8-jre-slim
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
 Directory: 8/jre/slim
 
-Tags: 8u212-jre-alpine3.9, 8-jre-alpine3.9, 8u212-jre-alpine, 8-jre-alpine
-Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: ec1553cccfb87c5f53a38555771fa6d13cebfcba
-Directory: 8/jre/alpine
-
-Tags: 7u221-jdk-jessie, 7u221-jessie, 7-jdk-jessie, 7-jessie
-SharedTags: 7u221-jdk, 7u221, 7-jdk, 7
-Architectures: amd64, arm32v5, arm32v7, i386
-GitCommit: 8259a15a9118fbe624e47979d34fac3ea7059ac4
-Directory: 7/jdk
-
-Tags: 7u221-jdk-slim-jessie, 7u221-slim-jessie, 7-jdk-slim-jessie, 7-slim-jessie, 7u221-jdk-slim, 7u221-slim, 7-jdk-slim, 7-slim
-Architectures: amd64, arm32v5, arm32v7, i386
-GitCommit: 8259a15a9118fbe624e47979d34fac3ea7059ac4
-Directory: 7/jdk/slim
-
-Tags: 7u211-jdk-alpine3.9, 7u211-alpine3.9, 7-jdk-alpine3.9, 7-alpine3.9, 7u211-jdk-alpine, 7u211-alpine, 7-jdk-alpine, 7-alpine
-Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: bc2fcfad89194727ec8a9334730af6ff4d8c44a7
-Directory: 7/jdk/alpine
-
-Tags: 7u221-jre-jessie, 7-jre-jessie
-SharedTags: 7u221-jre, 7-jre
-Architectures: amd64, arm32v5, arm32v7, i386
-GitCommit: 8259a15a9118fbe624e47979d34fac3ea7059ac4
-Directory: 7/jre
-
-Tags: 7u221-jre-slim-jessie, 7-jre-slim-jessie, 7u221-jre-slim, 7-jre-slim
-Architectures: amd64, arm32v5, arm32v7, i386
-GitCommit: 8259a15a9118fbe624e47979d34fac3ea7059ac4
-Directory: 7/jre/slim
-
-Tags: 7u211-jre-alpine3.9, 7-jre-alpine3.9, 7u211-jre-alpine, 7-jre-alpine
-Architectures: amd64, arm32v6, arm32v7, arm64v8, i386, ppc64le, s390x
-GitCommit: bc2fcfad89194727ec8a9334730af6ff4d8c44a7
-Directory: 7/jre/alpine
+Tags: 8u212-b04-jre-windowsservercore-1809, 8u212-jre-windowsservercore-1809, 8-jre-windowsservercore-1809
+SharedTags: 8u212-b04-jre-windowsservercore, 8u212-jre-windowsservercore, 8-jre-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 8/jre/windows/windowsservercore-1809
+Constraints: windowsservercore-1809
+
+Tags: 8u212-b04-jre-windowsservercore-1803, 8u212-jre-windowsservercore-1803, 8-jre-windowsservercore-1803
+SharedTags: 8u212-b04-jre-windowsservercore, 8u212-jre-windowsservercore, 8-jre-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 8/jre/windows/windowsservercore-1803
+Constraints: windowsservercore-1803
+
+Tags: 8u212-b04-jre-windowsservercore-ltsc2016, 8u212-jre-windowsservercore-ltsc2016, 8-jre-windowsservercore-ltsc2016
+SharedTags: 8u212-b04-jre-windowsservercore, 8u212-jre-windowsservercore, 8-jre-windowsservercore
+Architectures: windows-amd64
+GitCommit: cb091f035299421cc58ff8ea5126bb8a9350da97
+Directory: 8/jre/windows/windowsservercore-ltsc2016
+Constraints: windowsservercore-ltsc2016

@tianon
Copy link
Member Author

tianon commented May 22, 2019

As a later issue, I'd love to also publish pre-release images based on the "EA" builds from https://adoptopenjdk.net/upstream.html, but that's a larger project and I don't want to hold this up.

@conn
Copy link

conn commented May 23, 2019

CC @carlossg and @ndeloof for Jenkins

And also pointing out Zulu's JDK image

@theRealAph
Copy link

Closes #320

These binaries are built by Red Hat on behalf of the OpenJDK jdk8u and jdk11u projects. The binaries are created from the unmodified source code at OpenJDK.

So to put that another way and be explicitly clear, the builds from https://adoptopenjdk.net/upstream.html are not AdoptOpenJDK, but are merely hosted/enabled by the AdoptOpenJDK project as explicitly vanilla builds of the upstream OpenJDK project blessed/supported by the 8u/11u project lead. For context, see #320 (comment):

I am the OpenJDK 8 and 11 Updates OpenJDK project lead.

Concrete (potentially breaking) changes that are a consequence of this:

1. no more OpenJDK 7 images (see [#320 (comment)](https://github.com/docker-library/openjdk/issues/320#issuecomment-494417274) -- "7 is still alive but only receives security updates" and "compatibility between 7 and 8 seems to be good enough in most cases")

Yes. Red Hat long-term support ends July 2020, and I expect other vendors to do something similar. Over time it becomes hard and harder to back-port fixes.

2. no more OpenJDK 11 JRE images (see [#320 (comment)](https://github.com/docker-library/openjdk/issues/320#issuecomment-494417274) -- "JDK 11 has no official JRE build. The reason for this is that the `jlink` tool allows users to create precisely-targeted stripped JDK images for their applications, and this is IMO better for Docker than a JRE image.")

Right, for now.

3. the way OpenJDK is installed in 8 and 11 images is now quite different, and there will be some breakage expected -- I've tried to minimize that as much as possible, but there's only so much I can do here

4. no more OpenJDK 8 Alpine images (Alpine/musl is not officially supported by the OpenJDK project, so this reflects that -- see "Project Portola" for the Alpine porting efforts which I understand are still in need of help)

5. supported architectures are now decreased to match what's "officially" published -- for 8, we drop to just amd64, for 11 we drop to amd64 and arm64v8

What other architectures do you need?

Copy link

@jerboaa jerboaa left a comment

Choose a reason for hiding this comment

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

This looks alright to me. Perhaps consider the additional verification step of the gpg key. I see you've already found the JDK 8u JREs :)

Dockerfile-adopt-slim.template Show resolved Hide resolved
ENV JAVA_DEBIAN_VERSION 8u212-b01-1~deb9u1
# https://adoptopenjdk.net/upstream.html
ENV JAVA_VERSION 8u212-b04
ENV JAVA_BASE_URL https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/jdk8u212-b04/OpenJDK8U-
Copy link

Choose a reason for hiding this comment

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

FYI: Going forward (with the July CPU) the JDK URLs will change to:

https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases/download/<tag>/OpenJDK8U-jdk_

That is, they'll be similar to JRE links.

Copy link
Member Author

Choose a reason for hiding this comment

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

Oh nice! 👍

Any chance I could convince you to publish something like https://adoptopenjdk.net/upstream.json with some useful deets so I'm not scraping HTML over in update.sh to get these values? 😇

(Published checksums would be cool too, but I don't want to be going overboard and fully understand if I'm asking too much on either of these. 😅)

Copy link
Member Author

Choose a reason for hiding this comment

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

Ah, just found https://github.com/AdoptOpenJDK/openjdk-website/blob/master/src/handlebars/upstream.handlebars (so a .json is probably asking a bit much) -- maybe it would be possible to get these builds integrated with https://api.adoptopenjdk.net/ somehow?

Not a huge problem, we can adapt as necessary (it usually becomes pretty obvious when our scraping breaks since we do build tests afterwards before doing any automated commits). 👍

Copy link

Choose a reason for hiding this comment

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

Yes. The idea is to integrate this via https://api.adoptopenjdk.net/ long term.

@tianon
Copy link
Member Author

tianon commented May 23, 2019

Want to start by saying again how grateful we are for the review/help. 👍 ❤️

(I'll start with this question then hit into the code review comments! 🎉)

What other architectures do you need?

Well, I think "need" is a bit of a strong way to put it. 😅

We currently have the intersection of every architecture Debian's packages supported and that the official images program supports, which is amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x. I don't think we necessarily need all of those, especially with docker-library/official-images#5710 having so many more, but it is a pretty drastic change to go from 7 down to 2 or even 1 (although back +1 on 11 thanks to Windows 🤘).

I know IBM has been keen on ppc64le and s390x in the past, but they're shifting their focus almost entirely to AdoptOpenJDK (as I've understood), so those likely aren't going to be a very heavy loss here (as much as I personally enjoy them 😄).

Arm64 (which exists here for 11) is definitely really important to Arm, so it would be appreciated if that could stick around. It would be nice if we could have Arm32 (v7) at least, but I'm not going to throw any fits (and am really quite impressed/thrilled that we've got arm64 on 11 ❤️).

Also, I want to be clear that we don't expect you to release anything that's not fully "supported" within the OpenJDK project yet (Alpine / Portola being a great example), and contrary to some of the opinions shared in that previous thread we really do want to represent OpenJDK as well as we can. 😅 💙

@nicolas-albert
Copy link

Hi,
I try to understand the implication for my convertigo official image.
I didn't directly depend on the openjdk image but from tomcat:7-jre8 and tomcat:7-jre8-alpine.
OpenJDK 8 is still available. Do you keep the JRE or only the JDK (not a problem for us) ?
Do I have to drop some arch (amd64, arm32v6, arm64v8, i386) ?
Thanks !

@tianon
Copy link
Member Author

tianon commented May 23, 2019

@nicolas-albert the short is that tomcat:*-alpine will go away, and tomcat:7-jre8 will turn into tomcat:7-jdk8 (for now -- hopefully we can find a reasonable solution for building Tomcat Native in JRE images in the future like using COPY --from via docker-library/official-images#5929, but for now that's not part of the plan given that it wouldn't be supported downstream yet)

Since you're looking at jre8, your architectures list will unfortunately drop just to just amd64 (unless we can convince these nice OpenJDK upstream folks that any of those other architectures can be published for 8 😇).

> These binaries are built by Red Hat on behalf of the OpenJDK jdk8u and jdk11u projects. The binaries are created from the unmodified source code at OpenJDK.

So to put that another way and be explicitly clear, the builds from https://adoptopenjdk.net/upstream.html are *not* AdoptOpenJDK, but are merely hosted/enabled by the AdoptOpenJDK project as explicitly vanilla builds of the upstream OpenJDK project blessed/supported by the 8u/11u project lead.  For context, see docker-library#320 (comment):

> I am the OpenJDK 8 and 11 Updates OpenJDK project lead.

Concrete (potentially breaking) changes that are a consequence of this:

1. no more OpenJDK 7 images (see docker-library#320 (comment) -- "7 is still alive but only receives security updates" and "compatibility between 7 and 8 seems to be good enough in most cases")

2. no more OpenJDK 11 JRE images (see docker-library#320 (comment) -- "JDK 11 has no official JRE build. The reason for this is that the `jlink` tool allows users to create precisely-targeted stripped JDK images for their applications, and this is IMO better for Docker than a JRE image.")

3. the way OpenJDK is installed in 8 and 11 images is now quite different, and there will be some breakage expected -- I've tried to minimize that as much as possible, but there's only so much I can do here

4. no more OpenJDK 8 Alpine images (Alpine/musl is not officially supported by the OpenJDK project, so this reflects that -- see "Project Portola" for the Alpine porting efforts which I understand are still in need of help)

5. supported architectures are now decreased to match what's "officially" published -- for 8, we drop to just amd64, for 11 we drop to amd64 and arm64v8
…sues

Also remove a comment I missed and add `gpgconf --kill all` in the appropriate place.
Not sure why the registry edits didn't work here but they've worked fine elsewhere.  Shrug.
@yosifkit
Copy link
Member

Just making a rough note of packages that might now be "missing" since they are dependencies of Debian's -jdk, -jre or -headless packages:

  • openjdk-8-jdk:
    libasound2
    libatk-wrapper-java-jni
    libgl1-mesa-glx
    libgtk-3-0
    libpng16-16
    libpulse0
    libx11-6
    libxext6
    libxinerama1
    libxrandr2
  • openjdk-11-jdk:
    libasound2
    libcups2
    libgcc1
    libjpeg62-turbo
    liblcms2-2
    libnss3
    libpcsclite1
    libpng16-16
    libstdc++6
    libx11-6
    libxext6
    libxi6
    libxinerama1
    libxrandr2
    libxrender1
    libxtst6
    util-linux

RUN apt-get update && apt-get install -y --no-install-recommends \
bzip2 \
unzip \
xz-utils \
Copy link
Member

Choose a reason for hiding this comment

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

Note to future self: it seems this was left in the slim variant since the beginning by accident because they were just a copy of the regular with 2 line changes provided by a sed: https://github.com/docker-library/openjdk/pull/133/files#diff-25e6ad8ebc5d26ba06d2bcb0b220149cR351. I think we could reasonably consider adding unzip back for useful .jar extraction.

@yosifkit yosifkit merged commit 2b34ab5 into docker-library:master May 24, 2019
@yosifkit yosifkit deleted the upstream-8-and-11 branch May 24, 2019 20:50
docker-library-bot added a commit to docker-library-bot/official-images that referenced this pull request May 24, 2019
Changes:

- docker-library/openjdk@2b34ab5: Merge pull request docker-library/openjdk#322 from infosiftr/upstream-8-and-11
- docker-library/openjdk@282961c: Also verify Andrew's signature of the RedHat OpenJDK PGP key
- docker-library/openjdk@f17436b: Fix Travis and AppVeyor Windows duplication
- docker-library/openjdk@6c84155: Fix Windows TLS 1.2 issues
- docker-library/openjdk@e715db1: Add "pgp-happy-eyeballs" in Travis to help cut down on gpg-related issues
- docker-library/openjdk@14d125a: Add "libfreetype6" to non-slim images for sun.awt.X11FontManager support
- docker-library/openjdk@3eb0351: Move 8 and 11 to consume from https://adoptopenjdk.net/upstream.html
- docker-library/openjdk@4b9abf8: Update to 11.0.3, debian 11.0.3+1-1~bpo9+2
- docker-library/openjdk@448901d: Update to 13-ea+22
- docker-library/openjdk@6c4796f: Adjust "generate-stackbrew-library.sh" order to put Windows 1809 first
@tianon
Copy link
Member Author

tianon commented May 24, 2019

For those unfamiliar with the official-images process: the image will be updated once docker-library/official-images#5953 merges (which will include a diff and a build test). 👍

@J0WI
Copy link
Contributor

J0WI commented May 24, 2019

Sad to see the Alpine variants gone 😕

@tianon
Copy link
Member Author

tianon commented May 24, 2019

Yeah, it's a shame, but I don't really see a better option (and it reflects the upstream OpenJDK support for Alpine accurately).

@J0WI
Copy link
Contributor

J0WI commented May 24, 2019

Why have they been removed entirely?
The Alpine builds are based on https://icedtea.classpath.org/ which is maintained by RedHat. And they even support more platforms than AdoptOpenJDK does.
There is docker-library/official-images#5710 for AdoptOpenJDK, but replacing the sources here will break many containers and running systems.

tianon referenced this pull request in docker-library/official-images Oct 11, 2019
DreadPirateRobertson added a commit to DreadPirateRobertson/kafka-manager that referenced this pull request Dec 13, 2019
An update to `openjdk:8-jre-slim` earlier this year (docker-library/openjdk#322) removed the `unzip` package in the base image, which the current generated dockerfile relies on. 

No issues were found, but ran into this while building a fresh docker image locally.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet