Docker COPY并保持目录
需要复制我的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/
有一种方法可以用一条线来实现吗?
您应该考虑ADD
而不是COPY
:请参阅Dockerfile ADD
如果
<src>
是一个识别压缩格式的本地tar档案(identity,gzip,bzip2或xz),那么它就被解压缩为一个目录。
这意味着你可以把你的docker构build步骤包装到脚本中,首先将tar -cvf dirs.tar dir1 dir2 dir3
然后,您的Dockerfile可以ADD dirs.tar
:您将在图像中find您的文件夹。
另请参阅Dockerfile最佳实践: ADD
或COPY
。