docker build --build-arg SSH_PRIVATE_KEY= 返回空"$(cat ~/.ssh/id_rsa)"



我希望能够读取文件的内容~/.ssh/id_rsa并将其传递给映像的构建阶段。当我使用命令docker build --build-arg SSH_PRIVATE_KEY="$(cat ~/.ssh/id_rsa)"然后尝试在构建期间在容器内回显它时,我得到空。

RUN echo "$SSH_PRIVATE_KEY" > /priv_key 
&& cat /priv_key

结果是

Step 6/14 : RUN echo "$SSH_PRIVATE_KEY" > /priv_key     && cat /priv_key
---> Running in c8d6e3c88cd8
Removing intermediate container c8d6e3c88cd8

在码头工人文件中,我有ARG SSH_PRIVATE_KEY.

但是当我使用像docker build --build-arg SSH_PRIVATE_KEY="dummy text"这样的虚拟文本时,我可以在日志中看到它。

这导致我的私钥格式无效,因为它是空的。RUN echo "${SSH_PRIVATE_KEY}" >> /root/.ssh/id_rsa

我做错了什么或没有做什么?谢谢

我继续使用ONVAULTtoool 来处理 ssh 键。 https://github.com/dockito/vault。

另外,我错误地配置了我的.ssh/config文件。新文件如下所示

Host *
IgnoreUnknown AddKeysToAgent,UseKeychain
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa 

我希望它将来对某人有所帮助。

我可以通过在定义基本映像后放置ARG来解决此问题:

FROM ubuntu:18.04 as builder
ARG SSH_PRV_KEY

而不是

ARG SSH_PRV_KEY
FROM ubuntu:18.04 as builder

最新更新