我是一名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。
任何帮助都非常感激。
答案 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