openjdk icon indicating copy to clipboard operation
openjdk copied to clipboard

Update to version X on base os Y

Open yosifkit opened this issue 6 years ago • 5 comments

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
  • 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
  • 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/
  • 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/

Related issues: #150 #211 #245 #271

yosifkit avatar Jan 17 '19 22:01 yosifkit

This is going to need some updates after https://github.com/docker-library/openjdk/pull/322. :sweat_smile:

tianon avatar May 23 '19 13:05 tianon

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.

robilad avatar Sep 18 '19 01:09 robilad

  • 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).

adamu avatar Sep 04 '20 12:09 adamu

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

wglambert avatar Sep 04 '20 15:09 wglambert

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.

adamu avatar Sep 04 '20 15:09 adamu