如何使用 Docker 文件中的“ADD”命令包含来自 Docker 构建上下文之外的文件?
从 Docker 文档中:
路径必须在构建的上下文中;您不能添加 ../something/something,因为 docker 构建的第一步是将上下文目录(和子目录)发送到 docker 守护进程。
我不想仅仅为了在这件事上适应 Docker 而重组我的整个项目。我想将我所有的 Docker 文件保存在同一个子目录中。
此外,Docker 似乎还没有(并且可能永远不会)支持符号链接: Dockerfile ADD 命令不遵循主机#1676 上的符号链接。
我能想到的唯一另一件事是包含一个预构建步骤,将文件复制到 Docker 构建上下文中(并配置我的版本控制以忽略这些文件)。还有比这更好的解决方法吗?
原文由 ben_frankly 发布,翻译遵循 CC BY-SA 4.0 许可协议
解决此问题的最佳方法是使用 -f 独立于构建上下文指定 Dockerfile。
例如,此命令将使 ADD 命令访问当前目录中的任何内容。
更新:Docker 现在允许在构建上下文之外使用 Dockerfile(在 18.03.0-ce 中修复)。所以你也可以做类似的事情