Dockerfile内容:

#以centos作为基础镜像
FROM docker.io/centos
#维护者信息
MAINTAINER michard michard@qq.com
#切换目录到/usr
WORKDIR /usr
#创建JDK路径
RUN mkdir java
#创建tomcat路径
RUN mkdir tomcat
#将宿主主机的jdk复制到镜像里
ADD /home/jdk/ /usr/java/
#将宿主主机的tomcat复制到镜像里
ADD /home/tomcat/apache-tomcat-8.5.63/ /usr/tomcat/
#定义环境变量
ENV JAVA_HOME=/usr/java/
ENV JRE_HOME=$JAVA_HOME/jre/
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV path=/sbin:$JAVA_HOME/bin:$PATH
#向外暴露8080端口
EXPOSE 8080
#启动tomcat
ENTRYPOINT ["/usr/tomcat/bin/catalina.sh","run"]

================================================================================

导致找不到jdk文件夹的原因就是:宿主主机的jdk文件夹路径和dockerfile的路径,不在同一个路径下。

解决方法,我把jdk和tomcat的文件夹,移动到和dockerfile同一个目录下,这样dockerfile就顺便的构建成功。

dockerfile改为如下

ADD jdk /usr/java/
ADD tomcat8 /usr/tomcat/

究其原因还是ADD只能在它的上下文使用,即在dockerfile同级目录下,寻找该文件。
 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐