繁体   English   中英

Docker COPY 不cp

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM