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

时间:2018-10-02 08:57:55

标签: docker copy cp

如何将多个目录复制到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命令相比,这太冗长了。它还会创建不必要的图层。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

COPY ./ /code/

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

因此,您可以创建 .dockerignore 文件,以防止添加除 a b c < / em>。例如, d e f 是当前文件夹中的其他目录,这些目录不应位于结果图像中,否则的内容.dockerignore 文件如下所示:

Dockerfile*
d
e
f

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