Docker 在上下文之外遵循符号链接

新手上路,请多包涵

另一个 Docker 符号链接问题。我有一堆文件要复制到我所有的 Docker 构建中。我的目录结构是:

 parent_dir
    - common_files
        - file.txt
    - dir1
        - Dockerfile
        - symlink -> ../common_files

在上面的示例中,当我在 dir1 中构建 docker 时,我希望将 file.txt 复制过来。但我不想维护file.txt 的多个副本。根据 此链接,从 docker version 0.10 开始,docker build 必须

按照容器根目录中的符号链接获取 ADD 构建说明。

但是当我在 Dockerfile 中使用以下任一行构建时,我 没有得到这样的文件或目录

ADD symlink /path/dirnameADD symlink/file.txt /path/file.txt

安装选项不会为我解决它(跨平台……)。我试过 tar -czh . | docker build -t 没有成功。

有没有办法让 Docker 遵循符号链接并将 common_files/file.txt 复制到构建的容器中?

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

阅读 609
2 个回答

这是不可能的,也不会实施。请查看 关于 github 问题 #1676 的讨论

我们不允许这样做,因为它不可重复。您机器上的符号链接与我的机器不同,相同的 Dockerfile 会产生两种不同的结果。还具有指向 /etc/paasswd 的符号链接会导致问题,因为它会链接主机文件而不是本地文件。

原文由 Henrik Sachse 发布,翻译遵循 CC BY-SA 3.0 许可协议

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