我尝试将build
文件夹复制到/usr/share/nginx/html
所以我希望得到结果:
/usr/share/nginx/html/build/xxx
我在dockerfile中执行此操作
cp -r build /usr/share/nginx/html/
但是我的build/
文件夹的所有内容都被复制到/usr/share/nginx/html
内,而不是文件夹本身
就像:/usr/share/nginx/html/xxx
当我在正在运行的容器中执行完全相同的命令时,它会以正确的方式发生!
比我/usr/share/nginx/html/build/xxx
有人能告诉我我做错了吗?
答案 0 :(得分:0)
我不知道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/
请告诉我这是否适合您。