Вдохновленный вопросом Почему базовый образ Docker для Java 11 такой большой? (openjdk: 11-jre-slim) Я обнаружил, что эта тема в мире Java до сих пор не решена.
По состоянию на 07 Dec 2018
есть общие проблемы/подводные камни (обсуждаемые в билете выше):
-
JRE не распространяется как отдельный "пакет". Вместо этого следует использовать модули от JDK
-
Oracle OpenJDK 11 не поддерживает Linux Alpine, поэтому облегченные изображения не могут быть легко созданы
- В то же время в текущих стабильных версиях Debian по-прежнему нет пакетов Java 11 (в Ubuntu Java 10 установлена под пакетами openjdk-11), поэтому нестабильные версии sid используются для базовых образов докера
-
в настоящее время доступные образы Oracle openjdk-11 создают модуль libjvm.so без
libjvm.so
, который имеет сотни мегабайт и должен быть удален отдельно:
В результате этих проблем даже тонкие базовые образы Oracle Java 11 являются довольно тяжелыми и считаются нестабильными: https://hub.docker.com/_/openjdk/
Итак, вопрос в следующем:
Каковы оптимизированные или рекомендуемые способы создания и доставки приложений Java 11 в виде образов докеров?