Docker COPY不cp

时间:2019-06-22 17:40:51

标签: docker

我想构建我的第一个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将文件放在指定的位置,否则将出现错误消息,因此这是行不通的。

4 个答案:

答案 0 :(得分:0)

请尝试这种方式

保留Dockerfile所在的“ jdbcdemo_3.war”。并在Dockerfile中进行更改。

(从Dockerfile中删除./),

COPY jdbcdemo_3.war / usr / local / tomcat / webapps /

答案 1 :(得分:0)

请检查文件的权限。

您可以授予完全许可并进行一次测试。 (用户:组)

答案 2 :(得分:0)

尝试一下:COPY jdbcdemo_3.war / tmp

在您的Dockerfile中。并生成映像并检入/ tmp目录。如果文件复制成功,则授予/ usr / local / tomcat / webapps /权限,或者先复制到/ tmp,然后从/ tmp复制到/ usr / local / tomcat / webapps /。在Dockerfile中使用COPY命令

答案 3 :(得分:0)

您好,非常感谢您提供建议。最终,这个问题微不足道。我没有检查正确的容器。

我没有意识到需要选择新创建的映像,使用该映像运行容器,然后才查看该容器中Dockerfile中描述的更改。

我一直在研究我现在知道不能工作的父容器。

抱歉浪费您的时间;-)