Docker COPY并保留目录

时间:2017-08-05 09:11:15

标签: docker dockerfile

需要在Dockerfile中复制多个目录。目前,我正在做:

COPY dir1 /opt/dir1
COPY dir2 /opt/dir2
COPY dir3 /opt/dir3

我更愿意将这些内容整合到一个语句中,一次性指定所有来源。但是,通过这种方式复制了内容,我丢失了dir1dir2dir3结构:

COPY dir1 dir2 dir3 /opt/

在这种情况下相同:

COPY dir1/ dir2/ dir3/ /opt/

有没有办法用一条线实现这个目标?

1 个答案:

答案 0 :(得分:2)

您应该考虑ADD而不是COPY:请参阅Dockerfile ADD

  

如果<src>是可识别的压缩格式(identity,gzip,bzip2或xz)的本地tar存档,则将其解压缩为目录。

这意味着您可以将docker构建步骤包装到首先tar -cvf dirs.tar dir1 dir2 dir3

的脚本中

然后您的Dockerfile可以ADD dirs.tar:您将在图片中找到您的文件夹。

另见Dockerfile Best Practices: ADD or COPY