主页符号`~`在Dockerfile中无法识别

在我的dockerfile中,我想将一个文件从我的主机的〜/ .ssh复制到容器中,所以我喜欢这样:

# create ssh folder and copy ssh keys from local into container
RUN mkdir -p /root/.ssh
COPY ~/.ssh/id_rsa /root/.ssh/

但是当我运行docker build -t foo来构建它时,它会因错误而停止:

Step 2 : RUN mkdir -p /root/.ssh
 ---> Using cache
 ---> db111747d125
Step 3 : COPY ~/.ssh/id_rsa /root/.ssh/
~/.ssh/id_rsa: no such file or directory

似乎dockerfile无法识别〜符号,我该如何解决这个问题?

最佳答案
在Docker中,无法将文件从系统中的任何位置复制到映像中,因为这会被视为安全风险. COPY路径始终被认为是相对于构建上下文的,这是运行docker build命令的当前目录.

这在文档中描述:https://docs.docker.com/reference/builder/#copy

因此,〜没有任何有用的意义,因为它会尝试将您引导到不属于上下文的位置.

如果要将本地id_rsa文件放入docker中,则应首先将其放入上下文中,例如将它复制到Dockerfile旁边,并以这种方式引用它.

相关文章

    转载注明原文:主页符号`~`在Dockerfile中无法识别 - 代码日志