代码之家  ›  专栏  ›  技术社区  ›  blueFast

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

  •  2
  • blueFast  · 技术社区  · 7 年前

    如何将多个目录复制到Docker中的目标目录?我不想复制 目录内容 ,但整个目录结构。

    这个 COPY ADD 命令复制目录内容,压平结构,这是我不想要的。也就是说,如果这些是我的来源:

    .
    ├── 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 回复  |  直到 7 年前
        1
  •  1
  •   cgrim    7 年前

    你可以:

    COPY ./ /code/
    

    它会将当前文件夹中的所有内容复制到 代码 图片的文件夹。

    所以你可以创造 .dockeringnore公司 防止添加其他文件/目录的文件 , C . 例如 D , e f 当前文件夹中的其他目录是否不应在结果图像中,然后是 .dockeringnore公司 文件将如下所示:

    Dockerfile*
    d
    e
    f
    

    这种方法的缺点是它也会复制 .dockeringnore公司 进入 代码 文件夹。