如何将主机用户主目录中的文件复制/添加到容器的主目录?

时间:2017-05-30 02:21:30

标签: docker dockerfile docker-build

#Update

我刚刚意识到ADD / COPY命令不允许任何访问 到主机当前工作目录之外的文件或目录。 还有一件事是,如果指定文件/目录的绝对路径 作为ADD / COPY命令之后的源路径,它也不被允许。

请参考这个,并有快乐的黑客! :)

=============================================== ========================

我想在主机的用户主目录下复制/添加文件 进入同一用户的容器主目录。

首先,可以将用户更改为在每台主机上使用Dockerfile构建docker镜像的用户。例如,在我的主机中,我有一个用户" test"。在另一个人的主持人中,将有一个用户"新手"。在每个主机中,我的Dockerfile都将被构建/使用。

以下是我复制/添加文件的测试语法。

...
RUN mkdir -p /home/${USER}/.ssh

ADD /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/
or COPY /home/${USER}/.ssh/id_rsa* /home/${USER}/.ssh/ 
...

当我尝试构建此Docker文件时,会显示以下错误。

Step 43/44 : ADD /home/user/.ssh/id_rsa* /home/${USER}/.ssh/
No source files were specified

请指导我做我想做的事。 :) 感谢。

2 个答案:

答案 0 :(得分:0)

现在已经有两年了,但我想在这里引用与@ Sung-Jin Park已经发现的情况相同的官方文件。

  

ADD遵守以下规则:

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

Dockerfile reference ADD

答案 1 :(得分:-4)

您可以使用以下内容:

WORKDIR /home COPY ${pwd}/my-file.txt .