如何从 Dockerfile 将文件夹复制到 docker 映像?

新手上路,请多包涵

我在 Dockerfile 中尝试了以下命令: COPY * / 并对结果感到非常惊讶。似乎天真的 docker 代码遍历 glob 中的目录,然后将每个文件转储到目标目录中,同时恭敬地忽略我的目录结构。

至少我是这样理解 这张票 的,它肯定与我得到的结果相对应。

我想这种行为仍然存在的唯一原因一定是应该有其他方法来完成。但是对于一只小脑袋的熊来说,这并不容易理解,有人知道吗?

原文由 jonalv 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 547
1 个回答

使用 ADD文档

ADD 命令可以接受为 <src> 参数:

  1. 构建文件夹 的一个文件夹(与 Dockerfile 相同的文件夹)。然后,您将在 Dockerfile 中添加一行,如下所示:
 ADD folder /path/inside/your/container

或者

  1. 主机文件系统中任何位置的单文件存档。要创建存档,请使用以下命令:
 tar -cvzf newArchive.tar.gz /path/to/your/folder

然后,您将在 Dockerfile 中添加一行,如下所示:

 ADD /path/to/archive/newArchive.tar.gz  /path/inside/your/container

笔记:

  • ADD 将自动提取您的存档。
  • 尾部斜杠的存在/不存在很重要,请参阅链接的文档

原文由 ryanrain 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题