Dockerfile中文件夹的错误副本

时间:2016-07-17 10:58:06

标签: docker dockerfile

我尝试将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 有人能告诉我我做错了吗?

1 个答案:

答案 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/

请告诉我这是否适合您。