docker - 将几个目录复制到另一个目录

您如何将多个目录复制到Docker中的目标目录?我不想复制目录内容,而是复制整个目录结构。
COPYADD命令复制目录内容,展平结构,这是我不想要的。也就是说,如果这些是我的来源:

.
├── a
│   ├── aaa.txt
│   └── uuu.txt
├── b
│   ├── ooo.txt
│   └── ppp.txt
└── c
    └── jjj.txt

我希望将其部署到docker镜像:
code/
├── a
│   ├── aaa.txt
│   └── uuu.txt
├── b
│   ├── ooo.txt
│   └── ppp.txt
└── c
    └── jjj.txt

我知道我可以这样做:
ADD a /code/a
ADD b /code/b
ADD c /code/c

但是,与linux cp命令相比,这太冗长了。它还会创建不必要的图层。

有没有更好的办法?

 

最佳答案

你可以做:

COPY ./ /code/

它将所有内容从当前文件夹复制到镜像的/ code文件夹。

因此,您可以创建.dockerignore文件,以防止添加除a,b和c之后的其他文件/目录。例如d,e和f是当前文件夹中的其他目录,这些目录不应出现在结果图像中,然后.dockerignore文件的内容将如下所示:
Dockerfile*
d
e
f

这种方法的缺点是它还会将.dockerignore复制到/ code文件夹中。

 

关于docker - 将几个目录复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52605123/

posted @ 2024-01-16 15:29  牧之丨  阅读(47)  评论(0编辑  收藏  举报