2015-04-21 1 views
7

Sto provando a creare un contenitore Docker (utilizzando un Dockerfile) con una versione specifica di Java 8 su di esso. Molti degli esempi riguardano l'ultima versione.Come installare una versione specifica di Java 8 utilizzando 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 

Ho bisogno di dove voglio controllare la versione specifica di Java che il mio contenitore è predisposto. Qualche suggerimento su come raggiungere questo obiettivo? Per esempio Aggiornamento di Java 8 31.

+0

Dato che PPA contiene solo il pacchetto più aggiornato, non è possibile utilizzare WebUpd8. – meskobalazs

+0

Ho creato un Dockerfile in cui è possibile specificare la versione tramite un tag, ma non lo invierò come risposta. Se vuoi dare un'occhiata, https://github.com/MartinSeeler/docker-oracle-server-jre#usage-from-docker-hub. –

risposta

8

Dato che la maggior parte dei pacchetti PPA include l'ultima versione stabile, è consigliabile installare Java manualmente da Oracle, come in this answer.

si può fare tutto il lavoro nello script troppo, i passaggi sono:

  • ottenere il tarball con wget,
  • estrailo con tar -xz,
  • uso update-alternatives per impostare è come predefinito
0

Un'altra opzione è utilizzare l'immagine Java ufficiale dal Docker Hub Registry

Ammettiamo che non offre l'Oracle JDK a causa delle restrizioni di licenza, ma è il modo più semplice per integrare Java nel flusso di lavoro Docker.