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

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


从Docker文档中:


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


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


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


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


繁星淼淼
浏览 719回答 4
4回答

心有法竹

我经常发现自己--build-arg为此目的而使用了该选项。例如,将以下内容放入Dockerfile中:ARG SSH_KEYRUN echo "$SSH_KEY" > /root/.ssh/id_rsa您可以这样做:docker build -t some-app --build-arg SSH_KEY="$(cat ~/file/outside/build/context/id_rsa)" .但是请注意Docker文档中的以下警告:警告:不建议使用构建时变量来传递诸如github密钥,用户凭据等机密。构建时变量值对于使用docker history命令的映像的任何用户都是可见的。
打开App,查看更多内容
随时随地看视频慕课网APP