无法在当前目录或目录中添加完整path的文件

当前目录

我无法在当前目录中添加文件。

$ ls Dockerfile id_rsa.pub 

$ docker build结果:

 Step 15 : ADD id_rsa.pub /home/ubuntu/.ssh stat /mnt/sda1/var/lib/docker/aufs/mnt/3c26803340b5ac907bcf6a32dd2c45da9ca98 ee2e4106f9a57a45d244619092b/home/ubuntu/.ssh/id_rsa.pub: not a directory 

完整path

我不能在具有完整path的目录中添加文件。

 $ ls /Users/weed/.ssh config id_rsa.pub id_rsa known_hosts 

$ docker build结果:

 Step 15 : ADD /Users/weed/.ssh/id_rsa.pub /home/ubuntu/.ssh Users/weed/.ssh/id_rsa.pub: no such file or directory 

尝试在ADD行中使用斜杠

 ADD /Users/weed/.ssh/id_rsa.pub /home/ubuntu/.ssh/ 

从文档:

如果<dest>不以结尾的斜杠结尾,则将其视为常规文件,<src>的内容将写入<dest>。

所以我认为/home/ubuntu/.ssh已经是容器中的一个目录,并且ADD命令试图覆盖它作为一个文件,而不是在目录中创build一个新的文件。

您尝试添加的文件看起来像SSH公钥。 你可以检查id_rsa.pub上的权限,以及〜/ .ssh的权限,使用ls -la吗? Docker的构build过程很可能无法访问其中的任何一个。