2015-04-21 2 views
7

Я пытаюсь создать контейнер Docker (используя файл Docker) с определенной версией Java 8 на нем. Многие примеры предназначены для последней версии.Как установить определенную версию Java 8 с помощью Dockerfile

RUN add-apt-repository -y ppa:webupd8team/java 
RUN apt-get update -y 

RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections 
RUN apt-get install -y oracle-java8-installer 

У меня есть необходимость, когда я хочу контролировать конкретную версию Java, которую предоставляет мой контейнер. Любой намек на то, как этого добиться? Для примера Java 8 update 31.

+0

Поскольку PPA содержит только самый современный пакет, это невозможно с помощью WebUpd8. – meskobalazs

+0

Я создал файл Docker, где вы можете указать версию через тег, но я не буду публиковать ее в качестве ответа. Если вы хотите посмотреть, https://github.com/MartinSeeler/docker-oracle-server-jre#usage-from-docker-hub. –

ответ

8

Поскольку большинство пакетов PPA упаковывают самую последнюю стабильную версию, я бы рекомендовал вручную установить Java из Oracle, как в this answer.

Вы можете сделать всю работу в сценарии тоже, шаги:

  • получить тарболл с wget,
  • распакуйте его с tar -xz,
  • использование update-alternatives установить это по умолчанию
0

Другой вариант - использовать официальное изображение Java из Docker Hub Registry

По общему признанию, он не предлагает Oracle JDK из-за ограничений лицензирования, но это самый простой способ интегрировать Java в рабочий процесс Docker.

Смежные вопросы