需要在Dockerfile中复制多个目录。目前,我正在做:
COPY dir1 /opt/dir1
COPY dir2 /opt/dir2
COPY dir3 /opt/dir3
我更愿意将这些内容整合到一个语句中,一次性指定所有来源。但是,通过这种方式复制了内容,我丢失了dir1
,dir2
,dir3
结构:
COPY dir1 dir2 dir3 /opt/
在这种情况下相同:
COPY dir1/ dir2/ dir3/ /opt/
有没有办法用一条线实现这个目标?
答案 0 :(得分:2)
您应该考虑ADD
而不是COPY
:请参阅Dockerfile ADD
如果
<src>
是可识别的压缩格式(identity,gzip,bzip2或xz)的本地tar存档,则将其解压缩为目录。
这意味着您可以将docker构建步骤包装到首先tar -cvf dirs.tar dir1 dir2 dir3
然后您的Dockerfile可以ADD dirs.tar
:您将在图片中找到您的文件夹。