一尘不染

使用Docker安装Java 8的最佳方法?

docker

我有一个以以下行开头的dockerfile

FROM java:8

我认为这应该是从docker容器注册表中提取图像并进行安装。没有?

当我在容器中运行java命令时,出现以下错误

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

使用Docker安装Java 8(openjdk版本)的最简单,最佳方法是什么?

更新:

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

阅读 3418

收藏
2020-06-17

共1个答案

一尘不染

也许您缺少了一些东西。 8标签或8-jdk工作正常:

$ docker run -ti java:8-jdk
root@ea4ae4cf642e:/# echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64

您还可以通过查看Dockerfile并确认它确实定义来进行验证JAVA_HOME。例如,参见java:8
Dockerfile

同样,最简单形式的Dockerfile当然也会得出相同的结果。即:

FROM java:8-jdk
CMD ["/bin/bash"]

并以以下方式构建:

$ docker build -t myjava .

然后,执行它:

$ docker run -ti myjava:latest bash
root@3c35f7d2d94a:/# echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd64
2020-06-17