кто является дистрибьютором openjdk docker image - PullRequest
1 голос
/ 16 июня 2020

я понимаю, что вам нужен дистрибьютор, чтобы использовать openjdk кто-то вроде (oracle openjdk, accepttopenjdk), но в репозитории docker для openjdk как мне узнать, кто является дистрибьютором, если я просто использую их справочную документацию

{приведенный ниже код скопирован из официального docker репозитория openjdk}

FROM openjdk:11
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN javac Main.java
CMD ["java", "Main"] 

переход от java 8 к java 11

1 Ответ

2 голосов
/ 16 июня 2020

Там все написано на странице docker: https://hub.docker.com/_/openjdk/

openjdk:

Это образ defacto. [...] Это кодовые названия пакетов для выпусков Debian, указывающие, на каком выпуске основан образ. [...]

openjdk: (начиная с 12), [...]

Начиная с openjdk: 12 изображение по умолчанию, а также - oracle и Варианты -oraclelinux7 основаны на официальном образе Oracle Linux 7, который предоставляется под GPLv2 в соответствии с Oracle Linux Соглашением с конечным пользователем (EULA). [...]

TL; DR: образы поддерживаются сообществом Docker, версии <12 поставляют сборку OpenJDK из Debian или Alpine Linux, более поздние версии поставляют Oracle builds. </p>

Кстати, до версии, включающей 8, Oracle JDK был более свободным. В любом случае, дистрибутивы Linux построили свои собственные двоичные файлы. Бинарные дистрибутивы от AdoptOpenJDK, Amazon Corretto и др. c. есть только там, потому что Oracle больше не предоставляет бинарных сборок бесплатно. Но вы можете загрузить OpenJDK и собрать его самостоятельно, если хотите.

Edit: вы также можете вставить sh в образ и запустить java -version

Edit2: Java 7 и поддержка

Хочу адресовать ваш комментарий к моему ответу. Вы специально просили Java версию 7 . Эта версия довольно старая (первый выпуск в 2011 году!), И вы не найдете никакой долгосрочной поддержки без оплаты коммерческой поддержки. Период. Эта версия также предшествует изменениям лицензии на Oracle двоичные файлы, поэтому весь аргумент AdoptOpenJDK не имеет значения.

На странице концентратора OpenJDK Docker вы можете увидеть разные изображения, доставляемые Java 7 сборок, некоторые с Alpine Linux и некоторые с Debian Jess ie. Это - по-видимому, я только проверил это для Debian - сборки проекта OpenJDK с открытым исходным кодом из этого дистрибутива. Таким образом, GPL с исключением пути к классам должна быть применимой лицензией (читайте: вы можете использовать ее в коммерческих целях). Обратите внимание, что даже LTS-поддержка Debian Jess ie заканчивается в следующем месяце: https://wiki.debian.org/LTS

Это не обязательно должно быть проблемой, в зависимости от того, где вы хотите запустить этот образ. (т. е. столкновение с publi c inte rnet по сравнению с частным intr anet).

Если вам нужно придерживаться такой старой версии Java, у вас есть несколько вариантов (возможно, современный linux образ и самостоятельно соберите OpenJDK [это будет болезненно, я полагаю]).

Edit3: Поддержка последней версии 7 и v8 + от AdoptOpenJdk

OK , поэтому вы пояснили в своем комментарии, что на самом деле вы не ищете сборки версии 7. Однако я нашел обновленную и поддерживаемую сборку Java 7 от Azul: https://hub.docker.com/r/azul/zulu-openjdk

Но вы сказали, что используете версию 8, глядя до go до 11. Тогда я очень рекомендую AdoptOpenJDK, которая в настоящее время является самой популярной сборкой. Они также предлагают Docker образов (Примечание: они предлагают разные JVM: Hotspot по умолчанию и настоятельно рекомендуется, OpenJ9 основан на разработке IBM)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...