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 initial all-Oracle variants (oraclelinux + jdk.java.net tarballs) #235

Merged
merged 1 commit into from
Oct 1, 2018

Conversation

tianon
Copy link
Member

@tianon tianon commented Sep 25, 2018

Closes #212
Closes #236

FYI @Djelibeybi (any and all comments, thoughts, review, etc would be super appreciated ❤️)

@tianon
Copy link
Member Author

tianon commented Sep 25, 2018

This was going to include 11-alpine, but as I noted over in #212, those tarballs are no longer listed. 😞

Here's a diff from the current master library/openjdk file for reference:

$ diff -u <(bashbrew cat openjdk) <(bashbrew cat <(./generate-stackbrew-library.sh))
--- /dev/fd/63	2018-09-25 11:44:32.805092390 -0700
+++ /dev/fd/62	2018-09-25 11:44:32.805092390 -0700
@@ -1,27 +1,39 @@
 Maintainers: Tianon Gravi <admwiggin@gmail.com> (@tianon), Joseph Ferguson <yosifkit@gmail.com> (@yosifkit)
 GitRepo: https://github.com/docker-library/openjdk.git
 
+Tags: 12-ea-12-jdk-oraclelinux7, 12-ea-12-oraclelinux7, 12-ea-jdk-oraclelinux7, 12-ea-oraclelinux7, 12-jdk-oraclelinux7, 12-oraclelinux7, 12-ea-12-jdk-oracle, 12-ea-12-oracle, 12-ea-jdk-oracle, 12-ea-oracle, 12-jdk-oracle, 12-oracle
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
+Directory: 12/jdk/oracle
+
+Tags: 12-ea-12-jdk-alpine3.8, 12-ea-12-alpine3.8, 12-ea-jdk-alpine3.8, 12-ea-alpine3.8, 12-jdk-alpine3.8, 12-alpine3.8, 12-ea-12-jdk-alpine, 12-ea-12-alpine, 12-ea-jdk-alpine, 12-ea-alpine, 12-jdk-alpine, 12-alpine
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
+Directory: 12/jdk/alpine
+
 Tags: 12-ea-12-jdk-windowsservercore-ltsc2016, 12-ea-12-windowsservercore-ltsc2016, 12-ea-jdk-windowsservercore-ltsc2016, 12-ea-windowsservercore-ltsc2016, 12-jdk-windowsservercore-ltsc2016, 12-windowsservercore-ltsc2016
 SharedTags: 12-ea-12-jdk-windowsservercore, 12-ea-12-windowsservercore, 12-ea-jdk-windowsservercore, 12-ea-windowsservercore, 12-jdk-windowsservercore, 12-windowsservercore
 Architectures: windows-amd64
-GitCommit: ea58310ec57fed8d5eedc7ed30eb7d0a26ebc574
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 12/jdk/windows/windowsservercore-ltsc2016
 Constraints: windowsservercore-ltsc2016
 
 Tags: 12-ea-12-jdk-windowsservercore-1709, 12-ea-12-windowsservercore-1709, 12-ea-jdk-windowsservercore-1709, 12-ea-windowsservercore-1709, 12-jdk-windowsservercore-1709, 12-windowsservercore-1709
 SharedTags: 12-ea-12-jdk-windowsservercore, 12-ea-12-windowsservercore, 12-ea-jdk-windowsservercore, 12-ea-windowsservercore, 12-jdk-windowsservercore, 12-windowsservercore
 Architectures: windows-amd64
-GitCommit: ea58310ec57fed8d5eedc7ed30eb7d0a26ebc574
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 12/jdk/windows/windowsservercore-1709
 Constraints: windowsservercore-1709
 
 Tags: 12-ea-12-jdk-windowsservercore-1803, 12-ea-12-windowsservercore-1803, 12-ea-jdk-windowsservercore-1803, 12-ea-windowsservercore-1803, 12-jdk-windowsservercore-1803, 12-windowsservercore-1803
 SharedTags: 12-ea-12-jdk-windowsservercore, 12-ea-12-windowsservercore, 12-ea-jdk-windowsservercore, 12-ea-windowsservercore, 12-jdk-windowsservercore, 12-windowsservercore
 Architectures: windows-amd64
-GitCommit: ea58310ec57fed8d5eedc7ed30eb7d0a26ebc574
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 12/jdk/windows/windowsservercore-1803
 Constraints: windowsservercore-1803
 
+Tags: 11-ea-28-jdk-oraclelinux7, 11-ea-28-oraclelinux7, 11-ea-jdk-oraclelinux7, 11-ea-oraclelinux7, 11-jdk-oraclelinux7, 11-oraclelinux7, 11-ea-28-jdk-oracle, 11-ea-28-oracle, 11-ea-jdk-oracle, 11-ea-oracle, 11-jdk-oracle, 11-oracle
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
+Directory: 11/jdk/oracle
+
 Tags: 11-ea-28-jdk-sid, 11-ea-28-sid, 11-ea-jdk-sid, 11-ea-sid, 11-jdk-sid, 11-sid, 11-ea-28-jdk, 11-ea-28, 11-ea-jdk, 11-ea, 11-jdk, 11
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
 GitCommit: ecb81629f5d5f226491e9f3e0a5be11662f72870
@@ -35,21 +47,21 @@
 Tags: 11-ea-28-jdk-windowsservercore-ltsc2016, 11-ea-28-windowsservercore-ltsc2016, 11-ea-jdk-windowsservercore-ltsc2016, 11-ea-windowsservercore-ltsc2016, 11-jdk-windowsservercore-ltsc2016, 11-windowsservercore-ltsc2016
 SharedTags: 11-ea-28-jdk-windowsservercore, 11-ea-28-windowsservercore, 11-ea-jdk-windowsservercore, 11-ea-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
 Architectures: windows-amd64
-GitCommit: a7b5f34846cbad5712619ea11d686ad6be56e922
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 11/jdk/windows/windowsservercore-ltsc2016
 Constraints: windowsservercore-ltsc2016
 
 Tags: 11-ea-28-jdk-windowsservercore-1709, 11-ea-28-windowsservercore-1709, 11-ea-jdk-windowsservercore-1709, 11-ea-windowsservercore-1709, 11-jdk-windowsservercore-1709, 11-windowsservercore-1709
 SharedTags: 11-ea-28-jdk-windowsservercore, 11-ea-28-windowsservercore, 11-ea-jdk-windowsservercore, 11-ea-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
 Architectures: windows-amd64
-GitCommit: a7b5f34846cbad5712619ea11d686ad6be56e922
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 11/jdk/windows/windowsservercore-1709
 Constraints: windowsservercore-1709
 
 Tags: 11-ea-28-jdk-windowsservercore-1803, 11-ea-28-windowsservercore-1803, 11-ea-jdk-windowsservercore-1803, 11-ea-windowsservercore-1803, 11-jdk-windowsservercore-1803, 11-windowsservercore-1803
 SharedTags: 11-ea-28-jdk-windowsservercore, 11-ea-28-windowsservercore, 11-ea-jdk-windowsservercore, 11-ea-windowsservercore, 11-jdk-windowsservercore, 11-windowsservercore
 Architectures: windows-amd64
-GitCommit: a7b5f34846cbad5712619ea11d686ad6be56e922
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 11/jdk/windows/windowsservercore-1803
 Constraints: windowsservercore-1803
 
@@ -63,6 +75,10 @@
 GitCommit: ecb81629f5d5f226491e9f3e0a5be11662f72870
 Directory: 11/jre/slim
 
+Tags: 10.0.2-jdk-oraclelinux7, 10.0.2-oraclelinux7, 10.0-jdk-oraclelinux7, 10.0-oraclelinux7, 10-jdk-oraclelinux7, 10-oraclelinux7, jdk-oraclelinux7, oraclelinux7, 10.0.2-jdk-oracle, 10.0.2-oracle, 10.0-jdk-oracle, 10.0-oracle, 10-jdk-oracle, 10-oracle, jdk-oracle, oracle
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
+Directory: 10/jdk/oracle
+
 Tags: 10.0.2-13-jdk-sid, 10.0.2-13-sid, 10.0.2-jdk-sid, 10.0.2-sid, 10.0-jdk-sid, 10.0-sid, 10-jdk-sid, 10-sid, jdk-sid, sid, 10.0.2-13-jdk, 10.0.2-13, 10.0.2-jdk, 10.0.2, 10.0-jdk, 10.0, 10-jdk, 10, jdk, latest
 Architectures: amd64, arm32v5, arm32v7, arm64v8, i386, ppc64le, s390x
 GitCommit: 6d143fd9932ee055c5658adea2f263eed48d04ad
@@ -76,21 +92,21 @@
 Tags: 10.0.2-jdk-windowsservercore-ltsc2016, 10.0.2-windowsservercore-ltsc2016, 10.0-jdk-windowsservercore-ltsc2016, 10.0-windowsservercore-ltsc2016, 10-jdk-windowsservercore-ltsc2016, 10-windowsservercore-ltsc2016, jdk-windowsservercore-ltsc2016, windowsservercore-ltsc2016
 SharedTags: 10.0.2-jdk-windowsservercore, 10.0.2-windowsservercore, 10.0-jdk-windowsservercore, 10.0-windowsservercore, 10-jdk-windowsservercore, 10-windowsservercore, jdk-windowsservercore, windowsservercore
 Architectures: windows-amd64
-GitCommit: 40a23ac72e90b05469c881a6fa9139476d3fa2a4
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 10/jdk/windows/windowsservercore-ltsc2016
 Constraints: windowsservercore-ltsc2016
 
 Tags: 10.0.2-jdk-windowsservercore-1709, 10.0.2-windowsservercore-1709, 10.0-jdk-windowsservercore-1709, 10.0-windowsservercore-1709, 10-jdk-windowsservercore-1709, 10-windowsservercore-1709, jdk-windowsservercore-1709, windowsservercore-1709
 SharedTags: 10.0.2-jdk-windowsservercore, 10.0.2-windowsservercore, 10.0-jdk-windowsservercore, 10.0-windowsservercore, 10-jdk-windowsservercore, 10-windowsservercore, jdk-windowsservercore, windowsservercore
 Architectures: windows-amd64
-GitCommit: 40a23ac72e90b05469c881a6fa9139476d3fa2a4
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 10/jdk/windows/windowsservercore-1709
 Constraints: windowsservercore-1709
 
 Tags: 10.0.2-jdk-nanoserver-sac2016, 10.0.2-nanoserver-sac2016, 10.0-jdk-nanoserver-sac2016, 10.0-nanoserver-sac2016, 10-jdk-nanoserver-sac2016, 10-nanoserver-sac2016, jdk-nanoserver-sac2016, nanoserver-sac2016
 SharedTags: 10.0.2-jdk-nanoserver, 10.0.2-nanoserver, 10.0-jdk-nanoserver, 10.0-nanoserver, 10-jdk-nanoserver, 10-nanoserver, jdk-nanoserver, nanoserver
 Architectures: windows-amd64
-GitCommit: 40a23ac72e90b05469c881a6fa9139476d3fa2a4
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 10/jdk/windows/nanoserver-sac2016
 Constraints: nanoserver-sac2016
 
@@ -122,21 +138,21 @@
 Tags: 8u181-jdk-windowsservercore-ltsc2016, 8u181-windowsservercore-ltsc2016, 8-jdk-windowsservercore-ltsc2016, 8-windowsservercore-ltsc2016
 SharedTags: 8u181-jdk-windowsservercore, 8u181-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
 Architectures: windows-amd64
-GitCommit: 5527e8e319a1451b9e302af846b9939da36d8992
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 8/jdk/windows/windowsservercore-ltsc2016
 Constraints: windowsservercore-ltsc2016
 
 Tags: 8u181-jdk-windowsservercore-1709, 8u181-windowsservercore-1709, 8-jdk-windowsservercore-1709, 8-windowsservercore-1709
 SharedTags: 8u181-jdk-windowsservercore, 8u181-windowsservercore, 8-jdk-windowsservercore, 8-windowsservercore
 Architectures: windows-amd64
-GitCommit: 5527e8e319a1451b9e302af846b9939da36d8992
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 8/jdk/windows/windowsservercore-1709
 Constraints: windowsservercore-1709
 
 Tags: 8u181-jdk-nanoserver-sac2016, 8u181-nanoserver-sac2016, 8-jdk-nanoserver-sac2016, 8-nanoserver-sac2016
 SharedTags: 8u181-jdk-nanoserver, 8u181-nanoserver, 8-jdk-nanoserver, 8-nanoserver
 Architectures: windows-amd64
-GitCommit: 5527e8e319a1451b9e302af846b9939da36d8992
+GitCommit: 50f3b76cf3fa1c39c56d54f0483c21cdf3543f74
 Directory: 8/jdk/windows/nanoserver-sac2016
 Constraints: nanoserver-sac2016
 

@tianon
Copy link
Member Author

tianon commented Sep 25, 2018

It's probably also about time to add some templates here that don't live in update.sh, since these new Dockerfiles are pretty static (and much simpler).

@tianon
Copy link
Member Author

tianon commented Sep 25, 2018

Getting java.lang.UnsatisfiedLinkError: /usr/java/openjdk-12/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory from our tests -- should we install that dependency, or update the test? 🤔

@yosifkit
Copy link
Member

That test (java-uimanager-font) is skipped for slim and alpine. So is this equivalent to those? (my leaning is no, we should add the dependency)

@tianon
Copy link
Member Author

tianon commented Sep 25, 2018

I think the package in question is freetype. Before: ~456MB, After: ~457MB; yep, let's just install it.

@tianon
Copy link
Member Author

tianon commented Sep 25, 2018

Ah, it also needs fontconfig, which brings us up to ~459MB, but still totally reasonable (~3MB increase for full "non-slim" font/UI support).

@tianon tianon force-pushed the oracle branch 2 times, most recently from a4b8cd9 to bfb8b1b Compare September 25, 2018 19:43
@raehalme
Copy link

I’d prefer keeping off everything that you don’t always need. You’re building the final image anyways so it’s not a problem to install the additional dependencies that your app needs.

@Djelibeybi
Copy link

The oraclelinux:7-slim variants look good to me. Ping @robilad to respond on the Alpine/musl issue.

@robilad
Copy link

robilad commented Sep 26, 2018

Yeah, the alpine port is not in a supported release, since it's not in the mainline code base, so it's only available as early access builds of OpenJDK Project Portola http://openjdk.java.net/projects/portola.

It works, but at this stage it basically needs community contributors to help maintain it and get it into mainline - see https://twitter.com/MikaelVidstedt/status/984920426655526912 for details. Interested contributors should drop by portola-dev to discuss specifics.

@robilad
Copy link

robilad commented Sep 26, 2018

I'd suggest not using 11-ea-28-*, since it's the 11 GA build now, and just going with 11, to avoid potential confusion about differences.

Speaking of EA builds, we publish one for 12 almost every week - would you like me to open a new issue with the hash and URL regularly? I think this integration would really shine for the CI use case with early access builds of upcoming releases (i.e. 12), completely aside from regular usage.

@tianon
Copy link
Member Author

tianon commented Sep 26, 2018

I'd suggest not using 11-ea-28-*, since it's the 11 GA build now, and just going with 11, to avoid potential confusion about differences.

Ok, but it's still build 28, right? So there might eventually be an 11+29 or so? Isn't it still useful for users to have a way to denote that (and be explicit about which build they're using/testing)? Should we just replace -ea- with -ga-? -build-? I guess ideally I imagine it'd probably be simply + (as is used in the output of java --version and in the tarball name), but that isn't valid in Docker tag names. 😅

Speaking of EA builds, we publish one for 12 almost every week - would you like me to open a new issue with the hash and URL regularly? I think this integration would really shine for the CI use case with early access builds of upcoming releases (i.e. 12), completely aside from regular usage.

Assuming those show up on http://jdk.java.net/12/, this PR merging will automatically pull those in (since it'll auto-update from whatever that page provides, which is how I noticed that 11's Alpine builds disappeared 😅). 👍 💪

@robilad
Copy link

robilad commented Sep 28, 2018

There won't be a 11+29 as the development of JDK 11 in the JDK Project is complete. Further JDK 11 updates are starting to be developed in the JDK Updates Project , and the first one will be 11.0.1, which will be published in October on the jdk.java.net/11 site.

As such, I think replacing 11-ea-28 with 11-ga would be fine.

Great to hear that we'd get automatic updates for EA builds - that will make the life of a lot of projects participating in the OpenJDK Quality Outreach simpler, I hope - see https://wiki.openjdk.java.net/display/quality/Quality+Outreach for a long list.

@tianon
Copy link
Member Author

tianon commented Sep 28, 2018

the first one will be 11.0.1

Oh! Even better -- we'll drop to simply "11" as you suggest (since it'll become 11.0.1 next month). 👍

I need to update master with a similar change for Debian images, but we're good here now!

tianon added a commit that referenced this pull request Sep 28, 2018
See #235 (comment) for details.  Previously, "11+28" was "11-ea+28", but build 28 became GA and the next release will be 11.0.1, so tagging "11+28" simply "11" is appropriate.
@tianon
Copy link
Member Author

tianon commented Oct 1, 2018

Ok, updated to the latest URLs, etc. (which caught a minor bug in my script 😅)

Assuming CI is happy, I think this is good to go! (unless @Djelibeybi has any more Dockerfile comments he wants to make, that is 😏)

@Djelibeybi
Copy link

Nope, I'm all good. 😁

@yosifkit yosifkit merged commit 8586ecb into docker-library:master Oct 1, 2018
@wglambert wglambert mentioned this pull request Apr 16, 2020
@kaspav1
Copy link

kaspav1 commented Apr 8, 2021

As the https://openjdk.java.net/jeps/386 was implemented isn't it now the proper time to have alpine image official as the others?

@yosifkit
Copy link
Member

yosifkit commented Apr 8, 2021

Once it shows up like the others on the GA release page (https://jdk.java.net/16/). The page still says it is only available in early-access builds:

The Alpine Linux build previously available on this page was removed as of the first JDK 16 release candidate. It’s not production-ready because it hasn’t been tested thoroughly enough to be considered a GA build. Please use the early-access JDK 17 Alpine Linux build in its place.

@tianon
Copy link
Member Author

tianon commented Apr 8, 2021

I imagine that if anything is going to change here from the perspective of Oracle's releases, it'll only be for 17+ (https://jdk.java.net/17/).

@kaspav1
Copy link

kaspav1 commented Apr 9, 2021

Thanks yosifkit,
I didn't realize that part. I just somehow expected that https://openjdk.java.net/jeps/386 will lead to GA of alpine builds on 16 and later releases but apparently I was wrong. I am really confused why they implement features like this while they are not part of GA versions. That simply does not make sense from my perspective. One can only hope that it will became part of GA versions soon.

@delabassee
Copy link

In a nutshell, that JEP means that the JDK codebase now supports that target platform, i.e. it can be build for Alpine Linux. It's then up to a specific vendor/provider (to choose) to provide OpenJDK builds for such platform, and provide support for it.

jakzal added a commit to vlingo/xoom-schemata that referenced this pull request May 7, 2021
From the OpenJDK team:

> The OpenJDK port for Alpine is not in a supported release by OpenJDK, since it is not in the mainline code base. It is only available as early access builds of OpenJDK Project Portola. See also [this comment](docker-library/openjdk#235 (comment)). So this image follows what is available from the OpenJDK project's maintainers.
>
> What this means is that Alpine based images are only released for early access release versions of OpenJDK. Once a particular release becomes a "General-Availability" release, the Alpine version is dropped from the "Supported Tags"; they are still available to pull, but will no longer be updated.
jakzal added a commit to vlingo/xoom-schemata that referenced this pull request May 7, 2021
From the OpenJDK team:

> The OpenJDK port for Alpine is not in a supported release by OpenJDK, since it is not in the mainline code base. It is only available as early access builds of OpenJDK Project Portola. See also [this comment](docker-library/openjdk#235 (comment)). So this image follows what is available from the OpenJDK project's maintainers.
>
> What this means is that Alpine based images are only released for early access release versions of OpenJDK. Once a particular release becomes a "General-Availability" release, the Alpine version is dropped from the "Supported Tags"; they are still available to pull, but will no longer be updated.

Signed-off-by: Jakub Zalas <jakub@zalas.pl>
anurag4DSB added a commit to scality/osis that referenced this pull request Jun 22, 2022
We are moving away from openjdk as alpine is not supported now. The OpenJDK port
for Alpine is not in a supported release by OpenJDK, since it is not in the
mainline code base. It is only available as early access builds of OpenJDK
Project Portola.
docker-library/openjdk#235 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

OpenJDK 12 for alpine Use OpenJDK builds provided by jdk.java.net?
7 participants