我有一个以以下行开头的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
答案 0 :(得分:5)
也许你错过了什么。
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
答案 1 :(得分:3)
在您的DockerFile中添加以下设置,以在Docker容器中安装openjdk 8。
# Install "software-properties-common" (for the "add-apt-repository")
RUN apt-get update && apt-get install -y \
software-properties-common
# Add the "JAVA" ppa
RUN add-apt-repository -y \
ppa:webupd8team/java
# Install OpenJDK-8
RUN apt-get update && \
apt-get install -y openjdk-8-jdk && \
apt-get install -y ant && \
apt-get clean;
# Fix certificate issues
RUN apt-get update && \
apt-get install ca-certificates-java && \
apt-get clean && \
update-ca-certificates -f;
# Setup JAVA_HOME -- useful for docker commandline
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
RUN export JAVA_HOME