一尘不染

如何在Docker的构建上下文之外包含文件?

docker

如何使用Docker文件中的“ ADD”命令从Docker构建上下文之外包含文件?

从Docker文档中:

路径必须在构建上下文内;您不能添加../something/something,因为Docker构建的第一步是将上下文目录(和子目录)发送到docker守护程序。

我不想为了适应Docker而重组我的整个项目。我想将所有Docker文件保留在同一子目录中。

此外,似乎Docker尚未(可能从未)支持符号链接:Dockerfile
ADD命令未遵循主机#1676上的符号链接。

我唯一能想到的就是包括一个预构建步骤,将文件复制到Docker构建上下文中(并配置我的版本控制以忽略这些文件)。有没有比这更好的解决方法了?


阅读 361

收藏
2020-06-17

共1个答案

一尘不染

解决此问题的最佳方法是使用-f独立于构建上下文指定Dockerfile。

例如,此命令将使ADD命令可以访问您当前目录中的任何内容。

docker build -f docker-files/Dockerfile .

更新
:Docker现在允许将Dockerfile置于构建上下文之外(已在18.03.0-ce,https:
//github.com/docker/cli/pull/886中修复)。所以你也可以做类似的事情

docker build -f ../Dockerfile .
2020-06-17