Версия 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 вы можете увидеть список всех доступных тегов

Другие вопросы по тегам