我尝试将我的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/
让我知道这是否适合您。