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-slim
gö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.8
Debian
sid
sürümleri kararsız
openjdk-11-jre-headless
resimde 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
modules
dosyası:# ls -lhG /usr/lib/jvm/java-11-openjdk-amd64/lib/modules 135M /usr/lib/jvm/java-11-openjdk-amd64/lib/modules
Şimdi, gelen sorular:
alpine
Java 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ı