我试图通过从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
答案 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。