我可以从dockerfile中的docker映像中复制目录吗?

时间:2019-01-21 18:22:42

标签: docker dockerfile

我试图通过从git服务器中提取代码并创建可部署的war,从我的docker文件中构建一个简单的Java Web应用程序(而非maven)。为此,我必须将classes目录复制到我的WEB -INF文件夹。我的班级目录位于 / usr / app_name / build / classes (在docker映像中),我想将其复制到 / usr / app_name / WebContent / WEB-INF / (在同一张图片中)。

这是我的docker文件:

FROM maven:3.5-jdk-8 AS buildserver
WORKDIR /usr/app_name
RUN git clone http://uname:pass@git_server_host:git_server_port/scm/tes/app_name.git /usr/app_name 

COPY /usr/app_name/build/classes /usr/app_name/WebContent/WEB-INF/
#***#Is there any way to perform above operation***

WORKDIR /usr/app_name/WebContent/WEB-INF/
RUN jar -cvf app_name.war *
FROM tomcat:latest
COPY --from=buildserver /usr/app_name/WebContent/WEB-INF/app_name.war .
EXPOSE 5060

1 个答案:

答案 0 :(得分:1)

docker中的COPY命令仅用于将文件从docker主机复制到正在构建的映像。您可以通过仅在映像中运行cp命令来执行所需的操作(如果在容器中安装了rsync或其他工具,则可以使用该命令)。例如:

RUN cp -r /usr/app_name/build/classes /usr/app_name/WebContent/WEB-INF/

将内容复制到/usr/app_name/WebContent/WEB-INF/classes,或:

RUN cp -r /usr/app_name/build/classes/* /usr/app_name/WebContent/WEB-INF/

如果要将内容直接复制到/ usr / app_name / WebContent / WEB-INF。