首页 > 解决方案 > 复制或添加具有多个目的地的 dockerfile

问题描述

在我当前的目录中,我有多个目录,我想将它们复制到 dockerfile 中,但不是所有目录都在单个位置,让 sya 我有 dir1、dir2、file1,我想将 dir1 复制到 des1,将 dir2 复制到 des2,将 file1 复制到 WORKDIR . 我在 dockerfile 中使用复制命令在三层上做这件事没有问题,但是还有另一种方法可以使用复制或添加命令在单层中做到这一点吗?

我通过这样做实现了这一点:

复制 dir1/ /app/dir1 复制 dir2/ /app/dir2 复制文件 1 /app

需要的目标是在一个副本中完成所有这些。

标签: dockerdockerfilecopyadd

解决方案


您可以创建某种脚本或想出一些巧妙的复制方法,src1 dst1 && src2 dst2但这对最终图像大小(如压缩图像层)或图像拉取时间没有帮助(除非您有很多层然后提取每一个小一个需要更多时间)。

最好将文件分开复制到多个阶段,这样当您更改其中一个时,只会再次构建更改的层,或者在拉取同一自制图像的新版本时,只有一些层已更改并且必须拉取。

我使用的一些来源:

https://github.com/moby/moby/issues/33551

如何使用 Dockerfile 在一层中复制多个文件?

https://linux.die.net/man/1/cp


推荐阅读