我正在docker容器中构建一个maven项目:
for row in df.iterrows():
print row ['Path_ID'],row['METER'],row['LATITUDE_SM'], row ['LONGITUDE_SM']
“build-image”的Dockerfile中的source和workdir位于/ src /(有两个子文件夹,每个子文件夹包含一个带有pom.xml的子模块,/ prc /pom.xml中的父pom)
构建完成后,容器退出。然后,我想提取构建工件:
docker run build-image "mvn clean package -f ./pom.xml"
我收到错误:
docker cp <container-id>:/src/module1/target/*.war ./
当我在不使用通配符的情况下指定文件时:
Error response from daemon: Could not find the file /src/<module1>/target/*.war in container silly_nobel
它成功了..
这是预期的行为还是错误?我用谷歌搜索了一下,但找不到与此问题类似的帖子。泊坞文版本为docker cp <container-id>:/src/<module1>/target/<module1>##0.1.0-SNAPSHOT.war ./
祝你好运
答案 0 :(得分:1)
docker cp
目前不支持通配符(github discussion)
但是你可以使用multi stage builds得到你想要的东西。在多阶段构建中,您可以使用允许使用通配符的COPY
。
这是一个简短的例子:
FROM alpine as builder
RUN touch foo.txt
RUN touch bar.txt
FROM alpine
COPY --from=builder /*.txt ./
构建运行映像:
$ docker build -t foobar .
$ docker run foobar ls
bar.txt
bin
dev
etc
foo.txt
...