为什么我的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 ADDCOPY命令直接相对于构build工作,并且仅用于该目录中未被.dockerignore文件排除的文件。 其原因是构build实际上运行在docker主机上,这可能是一个远程机器。 docker build .第一步docker build . 是打包目录中的所有文件(在这种情况下),并将它们发送到主机来运行你的构build。 您提供的任何绝对path都被解释为相对于构build目录,并且任何未被发送到服务器的引用都将被解释为缺less文件。

解决scheme是复制/ ansible到您的构build目录(通常与您的Dockerfile相同的文件夹)。