Warum ist die Java-11 base-Andockfenster Bild so groß? (openjdk:11-jre-slim)

Java 11 angekündigt ist die jüngste LTS-version. Wir versuchen also, um neue Dienstleistungen auf Grundlage dieser Java-version.

Jedoch die Basis Docker-image für Java-11 ist viel größer als das äquivalent für Java 8:

(Ich überlege mir nur die offizielles OpenJDK und die leichte Bilder für jede Java-version.)

Tiefer Graben aufgedeckt, der folgende "Dinge":

  • den openjdk:11-jre-slim Bild verwendet das Basis-image debian:sid-slim. Das bringt 2 Probleme:

    • dies ist 60 MB größer als alpine:3.8

    • den Debian sid Versionen sind instabil

  • den openjdk-11-jre-headless - Paket installiert in der Bild ist 3 mal größer als openjdk8-jre (innen laufende 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/

      Gehen tiefer entdeckte ich die "Wurzel" dieser schwere - es ist die modules - Datei der JDK:

      # ls -lhG /usr/lib/jvm/java-11-openjdk-amd64/lib/modules
      135M    /usr/lib/jvm/java-11-openjdk-amd64/lib/modules

So, nun zu den Fragen, die kam:

  • Warum ist alpine nicht mehr genutzt wird, als Basis-image für Java-11-slim-Bilder?

  • Warum ist instabil sid version für die LTS Java Bilder?

  • Warum ist die slim/headless/JRE-Paket für OpenJDK 11 so groß im Vergleich zu den ähnlichen OpenJDK-8-Paket?

    • Was ist das Module - Datei, die bringt 135 MB in OpenJDK 11?

UPD: als Lösungen für diese Herausforderungen könnte man diese Antwort: Java-11-Applikation als docker-image

  • Auch für eine neue Versionen (JDK 9+) von Java sind modular, was erklärt, warum gibt es Module in 11 vs 8.
  • Im Zusammenhang Lesen, vielleicht - Benchmarking Debian vs Alpine als Basis Docker-Image
  • Es ist keine JRE-11, also das, was Sie haben, ist eine komplette JDK. Können Sie erstellen, die kompakte Umgebungen, sogar schlanker als JRE 8, aber es erfordert eine tatsächliche modulare Anwendung, so dass die Abhängigkeiten bekannt sind.
  • Zusätzlich zu den oben genannten, nicht all jene Module, die Sie finden, wie der Grund der Zunahme der Größe der tatsächlich benötigten für Ihre Anwendungen. Aber um herauszufinden, welche diejenigen, die Sie sind gehen Sie zum erstellen einer modularen Anwendung. Sie können herausfinden, mehr über jlink (eingeführt in Java9) für diesen Zweck.
  • Was könnte eine bessere Zeit, um zu Lesen, diese online - twitter.com/LogicTheoryIO/status/1064503559071371265
  • Es ist keine JRE-11, also das, was Sie haben, ist eine komplette JDK. Hm. Das macht noch mehr verwirrend, denn es gibt sowohl 11-jre-slim und 11-jdk-slim, aber was ist noch mehr zu verwirren: "src.zip" in das jdk-image ist eine defekte weiche-Verknüpfung (also "src.zip" ist es nicht!)

InformationsquelleAutor radistao | 2018-11-19
Schreibe einen Kommentar