docker image设置jdk版本_使用docker安装java 8的最佳方法?

I have a dockerfile that starts with the following line

FROM java:8

I thought this is supposed to pull the image from the docker container registry and install. no?

when I run the java command inside my container I get the following error

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

What is the easiest and the best way to install java 8(openjdk version) using docker?

UPDATE:

RUN apt-get install -y --no-install-recommends software-properties-common

RUN add-apt-repository -y ppa:openjdk-r/ppa

RUN apt-get update

RUN apt-get install -y openjdk-8-jdk

RUN apt-get install -y openjdk-8-jre

RUN update-alternatives --config java

RUN update-alternatives --config javac

解决方案

Perhaps you're missing something.

8 tag or 8-jdk are working fine:

$ docker run -ti java:8-jdk

root@ea4ae4cf642e:/# echo $JAVA_HOME

/usr/lib/jvm/java-8-openjdk-amd64

You can also verify by looking at the Dockerfile and see that it indeed defines JAVA_HOME. For example, see java:8 Dockerfile

Also, The simplest form of Dockerfile will, of course, evaluate to the same result. i.e:

FROM java:8-jdk

CMD ["/bin/bash"]

And building in the following way:

$ docker build -t myjava .

Then, executing it:

$ docker run -ti myjava:latest bash

root@3c35f7d2d94a:/# echo $JAVA_HOME

/usr/lib/jvm/java-8-openjdk-amd64

你可能感兴趣的:(docker,image设置jdk版本)