We want to upgrade to Java-17, but there are a couple of different images, and it is not clear which one is the best to use.
I found there two java-17 docker images:
openjdk:17
openjdk:17-alpine
and there seem to be additional vendors like AdoptOpenJDK.
As I understand Java-17 was released under the NFTC license meaning we can use it for free in production, and keep getting security updates.
So is there any reason not to use openjdk:17 image?
CodePudding user response:
I strongly suggest you read the white paper written by pillars of the Java Community: Java Is Still Free 3.0.0 (Oct 2021)
Java-17 was released
There is no one single release of Java. Several vendors distribute builds and installers for each version of Java. Not all use the brand “Java” owned by Oracle Corp.
the NFTC license
Oracle No-Fee Terms and Conditions (NFTC) is a new license invented by Oracle for version 17 of their product, Oracle JDK. In my initial reading, it does seem to permit use in production without cost except when distributed with a product sold for a fee. But I am not an attorney, so study the terms for yourself and consult attorneys as needed.
Besides Oracle JDK, Oracle offers three other implementations of Java: an unsupported build of OpenJDK, and two versions of GraalVM (one free, one commercial).
Other vendors use other licenses. Some are free-of-cost, some are not.
Most of the implementations of Java are based mainly, or entirely, on the OpenJDK open-source codebase.
there seem to be additional vendors like AdoptOpenJDK.
There are several vendors providing implementations of Java for various platforms. All are equivalent in that they promise to implement the Java specifications, and are usually verified with rigorous testing suites.
Off the top of my head, vendors include Azul Systems, Adoptium (formerly AdoptOpenJDK), Red Hat/IBM, Microsoft, BellSoft, Pivotal, Amazon, Oracle, and SAP.
So is there any reason not to use openjdk:17 image?
I have no idea. You’ve specified neither the product nor the vendor.
keep getting security updates
Java 17 is a designated Long-Term Support (LTS) version. You can expect any of the vendors to continue releasing updates with fixes for security and bugs for several years.
Some vendors sell support plans to guarantee you speedy delivery of critical releases.