gpt4 book ai didi

docker - 如何从 docker 镜像复制文件 - dockerfile cmd

转载 作者:行者123 更新时间:2023-12-02 17:59:49 25 4
gpt4 key购买 nike

在构建期间,我想将图像中的文件(从文件夹 /opt/myApp/myFile.xml )复制到我的主机文件夹 /opt/temp在 Dockerfile 中,我使用 --mount 如下,尝试挂载到我的本地测试文件夹:RUN --mount=target=/opt/temp,type=bind,source=test cp /opt/myApp/myFile.xml /opt/temp我正在成功构建图像,但本地 test文件夹为空
有任何想法吗?

最佳答案

不支持在构建时将文件从镜像复制到主机。
这可以在运行时使用卷轻松实现。
但是,如果您真的想通过各种方式解决此问题,您可以查看 custom build outputs documentation ,这引入了对此类事件的支持。

这是一个受官方文档启发的简单示例:Dockerfile

FROM alpine AS stage-a
RUN mkdir -p /opt/temp/
RUN touch /opt/temp/file-created-at-build-time
RUN echo "Content added at build-time" > /opt/temp/file-created-at-build-time

FROM scratch as custom-exporter
COPY --from=stage-a /opt/temp/file-created-at-build-time .
为此,您需要使用以下参数启动构建命令:
DOCKER_BUILDKIT=1 docker build --output out .
这将在你的主机上创建一个除了 Dockerfile 之外的目录 out使用您需要的文件:
.
├── Dockerfile
└── out
└── file-created-at-build-time
cat out/file-created-at-build-time 
Content added at build-time

关于docker - 如何从 docker 镜像复制文件 - dockerfile cmd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63242674/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com