13

# 更新

我刚刚意识到 ADD/COPY 命令不允许对主机中当前工作目录之外的文件或目录进行任何访问。另一件事是,如果您在 ADD/COPY 命令之后指定文件/目录的绝对路径作为源路径,也将不允许这样做。

请参考此内容并祝您黑客愉快!:)

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

我想将主机中用户主目录下的文件复制/添加到同一用户的容器主目录中。

首先,可以将用户更改为在每个主机上使用 Dockerfile 构建 docker 映像的用户。例如,在我的主机中,我有一个用户“测试”。在对方的主机中,会有一个用户“新手”。在每个主机中,我的 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

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

4

2 回答 2

2

提出这个问题已经两年了,但我想在这里引用官方文档,该文档与@Sung-Jin Park 已经发现的内容相同。

ADD 遵循以下规则:

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

Dockerfile 参考 ADD

于 2019-11-08T15:11:21.457 回答
-5

您可以使用以下内容:

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

于 2018-01-02T11:09:08.440 回答