为什么我的dockerfile不能复制目录
在我的dockerfile我有这两行:
ADD /ansible/inventory /etc/ansible/hosts ADD /ansible/. /ansiblerepo
第一行工作,因为我可以运行容器,并看到我的主机文件已经填充所有ips从我的库存文件。
第二行似乎没有工作。 我只是试图复制ansible的所有文件/子目录,并将其复制到新容器内的ansiblerepo目录中。
在构build图像时没有任何错误,但ansiblerepo只是一个空目录,没有任何东西复制到它。 我假设我只是缺less一个反斜杠什么的。
删除拖尾/.
从源目录中应该修复ADD
命令。
在相关说明中,如果不需要URL下载function, Docker最佳实践build议使用COPY
ADD
。
Docker ADD
和COPY
命令直接相对于构build工作,并且仅用于该目录中未被.dockerignore
文件排除的文件。 其原因是构build实际上运行在docker主机上,这可能是一个远程机器。 docker build .
第一步docker build .
是打包目录中的所有文件(在这种情况下),并将它们发送到主机来运行你的构build。 您提供的任何绝对path都被解释为相对于构build目录,并且任何未被发送到服务器的引用都将被解释为缺less文件。
解决scheme是复制/ ansible到您的构build目录(通常与您的Dockerfile相同的文件夹)。