Dockerfile将war复制到本地链接卷

时间:2017-01-30 20:45:59

标签: dockerfile coreos

我有一个笔记应用程序,我在maven应用程序中使用Dockerfile构建。 我想将工件note-1.0.war复制到本地链接卷到webapps等文件夹。到目前为止,我在Dockerfile中有以下内容:

FROM maven:latest
MAINTAINER Sonam <emailme@gmail.com>
RUN apt-get update 

WORKDIR /code

#Prepare by downloading dependencies
ADD pom.xml /code/pom.xml
RUN ["mvn", "dependency:resolve"]
RUN ["mvn", "verify"]

#Adding source, compile and package into a fat jar
ADD src /code/src
RUN ["mvn", "clean"]
#RUN ["mvn", "install"]
RUN ["mvn", "install", "-Dmaven.test.skip=true"]
RUN mkdir webapps

COPY note-1.0.war webapps
#COPY code/target/note-1.0.war webapps

不幸的是,我一直看到&#34;没有这样的文件或目录&#34;在COPY声明中。以下是构建在Docker中的错误:

...
---> bd555aecadbd

Removing intermediate container 69c09945f954

Step 11 : RUN mkdir webapps

 ---> Running in 3d114c40caee

 ---> 184903fa1041

Removing intermediate container 3d114c40caee

Step 12 : COPY note-1.0.war webapps

lstat note-1.0.war: no such file or directory

如何将war文件复制到&#34; webapps&#34;我在

中执行的文件夹
RUN mkdir webapps

感谢

1 个答案:

答案 0 :(得分:1)

COPY指令从<src>复制新文件或目录,并将它们添加到路径<dest>的容器的文件系统中。 在您的示例中,docker构建在与Dockerfile相同的目录中查找note-1.0.war。 如果我理解你的意图,你想要在Dockerfile中从之前的RUN构建的映像中复制一个文件。 所以你应该使用像

这样的东西
RUN cp /code/target/note-1.0.war /code/webapps