openjdk
openjdk copied to clipboard
Update to version X on base os Y
Since we consume OpenJDK mainly from upstream or trusted/TCK tested binaries, here's a list of what can be updated and how.
Most version updates are handled automatically by update.sh
run via Jenkins (see README for last build status). OS distribution bumps are handled via an update to the corresponding template files in the root. We will be unlikely to move to Debian testing, Debian Sid or Alpine Edge, since all of these are "unstable" distributions.
- openjdk 7
- no more OpenJDK 7 images (see 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") https://github.com/docker-library/openjdk/pull/322
- openjdk 8
- JDK/JRE
- Openjdk 8 and 11 come from https://adoptopenjdk.net/upstream.html which does publish a JRE variant
- Alpine
- not officially supported by the OpenJDK project https://github.com/docker-library/openjdk/pull/322, https://github.com/docker-library/openjdk/issues/211#issuecomment-426708580, https://github.com/docker-library/openjdk/pull/235#issuecomment-424599754
- Debian & Windows
- uses latest builds from https://adoptopenjdk.net/upstream.html
- JDK/JRE
- openjdk 11
- JDK/JRE
- Openjdk 8 and 11 come from https://adoptopenjdk.net/upstream.html which does publish a JRE variant https://github.com/docker-library/openjdk/commit/572682ed1cb951ab8d978e8015e4a910093db920
- Alpine
- not officially supported by the OpenJDK project https://github.com/docker-library/openjdk/issues/211#issuecomment-426708580, https://github.com/docker-library/openjdk/issues/212#issuecomment-424453577, https://github.com/docker-library/openjdk/pull/235#issuecomment-424599754
- Debian & Windows
- uses latest builds from https://adoptopenjdk.net/upstream.html
- JDK/JRE
- openjdk 12
- has reached end of life (https://en.wikipedia.org/wiki/Java_version_history) https://jdk.java.net/12/
- openjdk 13
- has reached end of life (https://en.wikipedia.org/wiki/Java_version_history) https://jdk.java.net/13/
- openjdk 14
- has reached end of life (https://en.wikipedia.org/wiki/Java_version_history) https://jdk.java.net/14/
- openjdk 15
- has reached end of life (https://en.wikipedia.org/wiki/Java_version_history) https://jdk.java.net/15/
- openjdk 16
- has reached end of life (https://en.wikipedia.org/wiki/Java_version_history) https://jdk.java.net/16/
- openjdk 17
- There no longer exist "official" (or even semi-official) vanilla builds of OpenJDK 17 suitable for our use or for publishing as "OpenJDK" https://github.com/docker-library/openjdk/pull/495
- openjdk 18
- JDK
- See https://github.com/docker-library/openjdk/pull/322, https://github.com/docker-library/openjdk/issues/320#issuecomment-494417274 the builds come from https://jdk.java.net/18/ which only offers the JDK
- Alpine
- not production-ready because it hasn’t been tested thoroughly enough to be considered GA, see https://jdk.java.net/18/ and https://github.com/docker-library/docs/tree/master/openjdk#openjdkversion-alpine
- Debian
- we will not be providing images for 12+ based on Debian's packages, full stop. Those packages had lots of issues https://github.com/docker-library/openjdk/issues/302#issuecomment-482722509
- images based on the official JDK artifacts released on https://jdk.java.net/: https://github.com/docker-library/openjdk/pull/355
- Oracle Linux & Windows
- uses latest builds from https://jdk.java.net/18/
- JDK
- openjdk 19
- JDK
- See https://github.com/docker-library/openjdk/pull/322, https://github.com/docker-library/openjdk/issues/320#issuecomment-494417274 the builds come from https://jdk.java.net/19/ which only offers the JDK
- Alpine
- uses latest builds from https://jdk.java.net/19/ see also https://github.com/docker-library/docs/tree/master/openjdk#openjdkversion-alpine
- Debian
- we will not be providing images for 12+ based on Debian's packages, full stop. Those packages had lots of issues https://github.com/docker-library/openjdk/issues/302#issuecomment-482722509
- images based on the official JDK artifacts released on https://jdk.java.net/: https://github.com/docker-library/openjdk/pull/355
- Oracle Linux & Windows
- uses latest builds from https://jdk.java.net/19/
- JDK
Related issues: #150 #211 #245 #271
This is going to need some updates after https://github.com/docker-library/openjdk/pull/322. :sweat_smile:
Fwiw, I don't think that the reasons section in the dockerfile quoted above is still accurate, since no distro builds are used any more.
- openjdk 14
Alpine
- not production-ready because it hasn’t been tested thoroughly enough to be considered GA, see 485e574 and https://jdk.java.net/14/
This comment seems out of date. Came here looking for info on whether we can expect JDK 14 running on alpine 3.12 (like JDK 15 is).
Looks like JDK 15 no longer offers Alpine https://github.com/docker-library/openjdk/commit/cf6e35621136640016768baec9d3ba015fc1f507
JDK 14 also dropped Alpine back in February, the pattern is that Alpine is available during the early-access builds but has historically been dropped when the version reaches General Availability, presumably due to lack of sufficient testing
So currently the only version that supports Alpine right now is JDK 16 and it's on Alpine 3.12 https://github.com/docker-library/openjdk/pull/423
Thanks @wglambert.
- From https://github.com/docker-library/openjdk/commit/cf6e35621136640016768baec9d3ba015fc1f507:
No more Alpine in https://jdk.java.net/15/
- From https://jdk.java.net/15/:
For Alpine Linux, builds are produced on a reduced schedule and may not be in sync with the other platforms
A little difficult to follow - looks like it may be better to just avoid the Alpine images.