Версия JRE с стрелой (докер)
Я пытаюсь разобраться в создании изображений Docker с помощью проекта Google Jib и плагина Jib Maven.
Я не понимаю, как указать версию JRE.
Я понимаю, что я могу настроить в конфигурации плагина, что-то вроде:
<configuration>
<from>
<image>gcr.io/distroless/java</image>
</from>
</configuration>
но что это означает с точки зрения фактической версии JRE, которая будет использоваться? Что если я хочу сказать конкретно JRE 8u172?
Проект Jib утверждает это как особенность:
Воспроизводимый - перестройка образа вашего контейнера с одинаковым содержимым всегда создает одно и то же изображение.
поэтому я предполагаю, что должен быть какой-то способ заблокировать версию JRE?
Уровень: Продвинутый на Java и Maven, новичок во всем Docker.
2 ответа
Доступность 8u172 зависит от того, создал ли распространитель образ сборки этой версии.
версия сборки Java не управляется с помощью тегов изображений докера с gcr.io/distroless/java
,
В настоящее время gcr.io/distroless/java:8
Это было 8u212, как показано ниже.
https://console.cloud.google.com/gcr/images/distroless/GLOBAL/java?gcrImageListsize=30
~ $ docker run -it --rm --entrypoint java gcr.io/distroless/java:8 -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01)
OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode)
~ $
Если вы хотите указать версию сборки Java, я предлагаю использовать AdroptOpenJDK.
например
<configuration>
<from>
<image>adoptopenjdk/openjdk8:jdk8u172-b11</image>
</from>
</configuration>
Если вы можете использовать 8u171, вы можете выбрать openjdk.
<configuration>
<from>
<image>openjdk:8u171-jre</image>
</from>
</configuration>
Вы, вероятно, хотите использовать базовое изображение с предустановленной Java. каждое изображение докера содержит тег (ы), которые похожи на версии. если вы не укажете тег, как вы делали выше, то будет взята последняя версия, что может привести к неожиданному изменению версии Java.
Например, вы можете использовать opendjk
изображение с версией Java 8u212
используя openjdk:8u212-jre-stretch
, а в OpenJDK Docker Hub вы можете увидеть список всех доступных тегов