【发布时间】:2017-11-19 06:26:10
【问题描述】:
我正在尝试执行“mvn install”以从 Dockerfile 创建战争文件。下面是 Dockerfile
FROM scratch
FROM ubuntu:16.04
RUN mkdir /opt/java8
RUN mkdir /opt/tomcat8
RUN mkdir /opt/maven3
ENV JAVA_HOME /opt/java8
ENV CATALINA_HOME /opt/tomcat8
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$M2_HOME/bin
ADD jdk1.8.0_112 /opt/java8
ADD apache-tomcat-8.0.38 /opt/tomcat8
WORKDIR /home/veni/git/M_UserTP
RUN mvn install
WORKDIR /home/veni/git/M_UserTP/target
RUN mv M_UserTP.war
/home/veni/Documents/dhaval_bhoot/docker_images/tomcat1
ADD M_UserTP.war /opt/tomcat8/webapps
EXPOSE 8080
CMD ["catalina.sh", "run"]
我还在PATH环境变量中添加了maven的bin目录的路径。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/ veni/Documents/apache-maven-3.3.9/bin/
我在我的机器上从 root 用户设置的这个路径,我还在 PATH 变量中添加了与普通用户相同的路径。
所以现在我退出 root 用户并通过 sudo su 返回为 root 用户并检查 PATH 变量,它没有 maven 的路径
所以当我做 docker build of image 我得到波纹管错误
/bin/sh: 1: mvn: 未找到 命令“/bin/sh -c mvn install”返回非零代码:127
【问题讨论】: