我刚刚意识到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
请指导我做我想做的事。 :) 感谢。
答案 0 :(得分:0)
现在已经有两年了,但我想在这里引用与@ Sung-Jin Park已经发现的情况相同的官方文件。
ADD遵守以下规则:
- 路径必须在构建上下文中;你不能添加 ../something / something,因为Docker构建的第一步是 将上下文目录(和子目录)发送到docker 守护程序。
答案 1 :(得分:-4)
您可以使用以下内容:
WORKDIR /home
COPY ${pwd}/my-file.txt .