[英]Docker COPY does not cp
我想构建我的第一个 Docker 映像,其中包含 Apache Tomcat 和已部署的 Web 应用程序。 我的 Dockerfile 非常小,基于 Tomcat:8.0 映像,应该将 WAR 文件复制到 Tomcat 的 appBase 中。
图像构建报告成功,但在容器中找不到该文件。
使用“docker cp”从主机复制到容器工作没有问题:
[root@edubox dock]# docker cp jdbcdemo_3.war 15dd44bbf992:/usr/local/tomcat/webapps/
我的 Dockerfile:
# we are extending everything from tomcat:8.0 image ...
FROM tomcat:8.0
MAINTAINER simo
# COPY path-to-your-application-war path-to-webapps-in-docker-tomcat
COPY ./jdbcdemo_3.war /usr/local/tomcat/webapps/
EXPOSE 8082
图像构建:
root@edubox dock]# docker image build -t simo/jdbcdemo_3 --tag=recent ./
Sending build context to Docker daemon 10.24 kB
Step 1/4 : FROM tomcat:8.0
---> ef6a7c98d192
Step 2/4 : MAINTAINER simo
---> Using cache
---> 54d824d7258b
Step 3/4 : COPY ./jdbcdemo_3.war /usr/local/tomcat/webapps/
---> Using cache
---> f94330423a93
Step 4/4 : EXPOSE 8082
---> Running in 74b6dd0364b2
---> 9464f11ac18e
Removing intermediate container 74b6dd0364b2
Successfully built 9464f11ac18e
我希望 COPY 将文件放置在指定的位置或错误消息,因此这不起作用。
请试试这个方法
将“jdbcdemo_3.war”保留在您的 Dockerfile 所在的位置。 并在 Dockerfile 中进行此更改。
(从您的 Dockerfile 中删除 ./),例如,
复制 jdbcdemo_3.war /usr/local/tomcat/webapps/
请检查文件的权限方面。
您可以给予完全许可并测试一次。 (用户:组)
试试这个:复制 jdbcdemo_3.war /tmp
在您的 Dockerfile 中。 并构建映像并检查 /tmp 目录。 如果文件复制成功,给/usr/local/tomcat/webapps/权限或者先复制到/tmp,再从/tmp复制到/usr/local/tomcat/webapps/。 在 Dockerfile 中使用 COPY 命令
您好,非常感谢您提供建议。 这个问题最终是微不足道的。 我没有检查正确的容器。
我没有意识到需要选择新创建的映像,使用此映像运行容器,然后才查看该容器中 Dockerfile 中描述的更改。
我一直在研究父容器,我现在知道它无法工作。
Sry浪费你的时间;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.