试图在Docker镜像中设置JAVA_HOME,不知道它为什么不起作用

时间:2018-06-18 21:36:47

标签: docker

我是一名Linux脚本新手,所以请轻松一下。

我正在尝试构建一个包含jdk 1.8.0的docker镜像,并且有一个指向jdk位置的变量JAVA_HOME

这是我的Dockerfile:

FROM centos
RUN yum install -y wget java-1.8.0-openjdk zip unzip
RUN echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile
RUN source /etc/profile
RUN echo $JAVA_HOME

我回复$JAVA_HOME只是为了检查它是否已经设置但是我在构建图像时输出:

Sending build context to Docker daemon  50.18kB
Step 1/5 : FROM centos
 ---> 49f7960eb7e4
Step 2/5 : RUN yum install -y wget java-1.8.0-openjdk zip unzip
 ---> Using cache
 ---> 98745c0d3d08
Step 3/5 : RUN echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile
 ---> Using cache
 ---> 9e3244072966
Step 4/5 : RUN source /etc/profile
 ---> Using cache
 ---> 99809c08f2e3
Step 5/5 : RUN echo $JAVA_HOME
 ---> Running in c15274d8429f

Removing intermediate container c15274d8429f
 ---> a561301e0546
Successfully built a561301e0546

我确定这不是一个简单的原因,但我无法解决这个问题。

顺便说一下,我这样做是因为我想按照这些说明安装maven:https://www.vultr.com/docs/how-to-install-apache-maven-3-5-on-centos-7

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:1)

如果您将其运行到同一个RUN命令的一部分,则可以回显它:

FROM centos
RUN yum install -y wget java-1.8.0-openjdk zip unzip
RUN echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | tee -a /etc/profile && source /etc/profile && echo $JAVA_HOME