DockerFile COPY绝对路径报错
2017-04-14 by dongnan
错误描述
使用 DockerFile
创建 镜像时提示以下错误
Step 9/9 : COPY /usr/share/tomcat/\.jenkins/workspace/irm-web/target/irm-web-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/irm-web.war
lstat usr/share/tomcat/.jenkins/workspace/irm-web/target/irm-web-0.0.1-SNAPSHOT.war: no such file or directory
环境: docker 1.13.1 on CentOS 7.3 amd64
错误原因
在 DockerFile
中, ADD
与 COPY
指令,中的 src
是指 Dockerfile
所在目录的一个相对路径而不是绝对路径。
解决方法
使用相对路径,下列是修改后的 DockerFile
cat Dockerfile
FROM hub.ywwd.net/library/tomcat:9
MAINTAINER dongnan
ADD conf/sources.list /etc/apt/sources.list
ENV TZ=Asia/Shanghai LANG=en_US.UTF-8
ADD src/irm-web.war /usr/local/tomcat/webapps/irm-web.war
注意 src
目录与 Dockerfile
在同一级目录。
验证
重新创建镜像。
docker build -t irm-web
Sending build context to Docker daemon 27.3 MB
Step 1/7 : FROM hub.ywwd.net/library/tomcat:9
---> a0f141e26c8a
# ...省略
Step 7/7 : ADD src/irm-web.war /usr/local/tomcat/webapps/irm-web.war
---> 5a627a102ae7
Removing intermediate container d145d63ae591
Successfully built 5a627a102ae7
帮助
ADD 指令
格式: ADD <src> <dest>
该命令将复制指定的 <src>
到容器中的 <dest>
。
其中 <src>
可以是 Dockerfile
所在目录的一个相对路径,也可以是一个URL
,还可以是一个tar
文件(自动解压为目录)。
COPY 指令
格式: COPY <src> <dest>
复制本地主机的 <src>
为 Dockerfile
所在目录的相对路径到容器中的 <dest>
(非自动解压)。
参考
https://zongming.net/read-1013