Dockerfile 中的文件夹副本错误



我尝试将我的build文件夹复制到/usr/share/nginx/html
所以我想得到这样的结果:

/usr/share/nginx/html/build/xxx 

我在我的码头工人文件中执行此操作

cp -r  build /usr/share/nginx/html/

但是,我的build/文件夹的所有内容都复制到/usr/share/nginx/html而不是文件夹本身所以喜欢:/usr/share/nginx/html/xxx

当我在正在运行的容器中执行完全相同的命令时,它会以正确的方式发生!?比我得到/usr/share/nginx/html/build/xxx有人可以告诉我我做错了什么吗?

我不知道

Docker 守护进程在映像构建过程中究竟是如何工作的,但根据COPY的文档,有一个条款说;

复制
如果是目录,则目录的全部内容为 复制,包括文件系统元数据。注意:目录本身是 没有复制,只是它的内容。

显然,我们谈论的是 Linux cp 命令,而不是 docker 的COPY但听起来该规则似乎也以某种方式应用于cp

看:
https://docs.docker.com/engine/reference/builder/#/copy

为了解决您的问题 - 可能只是使用 ADD 命令复制您的build目录?

示例:(假设您的build目录与Dockerfile处于同一级别;

ADD build /usr/share/nginx/html/

让我知道这是否适合您。

相关内容

最新更新