Java 11'in en son LTS versiyonu olduğu duyuruldu. Bu nedenle, bu Java sürümüne dayalı yeni hizmetler başlatmaya çalışıyoruz.
Ancak, Java 11 için temel Docker görüntüsü Java 8 ile eşdeğerden çok daha büyüktür:
openjdk:8-jre-alpine: 84 MBopenjdk:11-jre-slim: 283 MB
( Her Java sürümü için yalnızca resmi OpenJDK ve en hafif görüntüleri düşünüyorum.)
Daha derin kazma şu "şeyleri" ortaya çıkardı:
openjdk:11-jre-slimgörüntü temel görüntüsünü kullanırdebian:sid-slim. Bu 2 konu getiriyor:bu 60 MB'den daha büyük
alpine:3.8Debian
sidsürümleri kararsız
openjdk-11-jre-headlessresimde yüklü olan paket 3 kat daha büyüktüropenjdk8-jre(çalışan Docker konteynerinin içinde):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/Daha derine inmek, bu ağırlığın "kökünü" keşfettim - JDK'nın
modulesdosyası:# ls -lhG /usr/lib/jvm/java-11-openjdk-amd64/lib/modules 135M /usr/lib/jvm/java-11-openjdk-amd64/lib/modules
Şimdi, gelen sorular:
alpineJava 11 ince görüntüleri için neden artık temel görüntü olarak kullanılmıyor?Dengesiz sid sürümü neden LTS Java görüntüleri için kullanılıyor?
OpenJDK 11 için ince / başsız / JRE paketi neden benzer OpenJDK 8 paketine kıyasla bu kadar büyük?
- OpenJDK 11'de 135 MB getiren bu modüller dosyası nedir ?
UPD : Bu zorluklara bir çözüm olarak bu cevap kullanılabilir: docker görüntüsü olarak Java 11 uygulaması