我想在dockerfile成功构建时获取一些文件,但它不会将文件从容器复制到主机.
这意味着当我构建dockerfile时,文件已经是主机.
解决方法
构建时,您有机会将文件从主机复制到您正在构建的映像(使用
COPY
directive或
ADD
)
您还可以使用docker cp将文件从容器(已运行docker的映像)复制到主机(通常,cp也可以从主机复制到容器)
但是你无法复制“来自Dockerfile”:Dockerfile只是一个指定如何构建图像的配方.
如果要将一些可能在构建期间生成的文件(例如calling a script generates ssl)返回给主机,则可以运行容器,从主机安装文件夹并执行cp命令.
例如参见getcrt script.
docker run -u root --entrypoint=/bin/sh --rm -i -v ${HOME}/b2d/apache:/apache apache << COMMANDS pwd cp crt /apache cp key /apache echo Changing owner from \$(id -u):\$(id -g) to $(id -u):$(id -u) chown -R $(id -u):$(id -u) /apache/crt chown -R $(id -u):$(id -u) /apache/key COMMANDS
COMMANDS之间的所有内容都是在容器上执行的命令,包括在主机${HOME} / b2d / apache文件夹中复制的cp,在容器中作为/ apache安装在-v ${HOME} / b2d / apache:/ apache .
这意味着每次在容器中复制/ apache上的任何内容时,实际上是在主机上复制${HOME} / b2d / apache!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。