Java 11 is announced to be the most recent LTS version. So, we're trying to start new services based on this Java version.
However, the base Docker image for Java 11 is much larger than the equivalent for Java 8:
- openjdk:8-jre-alpine: 84 MB
- openjdk:11-jre-slim: 283 MB
(I'm considering only the official OpenJDK and the most lightweight images for each Java version.)
Deeper digging uncovered the following "things":
- the - openjdk:11-jre-slimimage uses the base image- debian:sid-slim. This brings 2 issues:- this is 60 MB larger than - alpine:3.8
- the Debian - sidversions are unstable
 
- the - openjdk-11-jre-headlesspackage installed in the image is 3 times larger than- openjdk8-jre(inside running Docker container):- openjdk:8-jre-alpine:- / # du -hs /usr/lib/jvm/java-1.8-openjdk/jre/lib/ 57.5M /usr/lib/jvm/java-1.8-openjdk/jre/lib/
- openjdk:11-jre-slim:- # du -sh /usr/lib/jvm/java-11-openjdk-amd64/lib/ 179M /usr/lib/jvm/java-11-openjdk-amd64/lib/- Going deeper I discovered the "root" of this heaviness - it's the - modulesfile of the JDK:- # ls -lhG /usr/lib/jvm/java-11-openjdk-amd64/lib/modules 135M /usr/lib/jvm/java-11-openjdk-amd64/lib/modules
 
So, now the questions which came:
- Why is - alpinenot used any more as a base image for Java 11 slim images?
- Why is the unstable sid version used for LTS Java images? 
- Why is the slim/headless/JRE package for OpenJDK 11 so large compared to the similar OpenJDK 8 package? - What is this modules file which brings 135 MB in OpenJDK 11?
 
UPD: as a solutions for these challenges one could use this answer: Java 11 application as docker image
 
     
     
    