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

Sha*_*mir 5 containers docker dockerfile docker-image

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

RUN echo "$SSH_PRIVATE_KEY" > /priv_key \
    && cat /priv_key
Run Code Online (Sandbox Code Playgroud)

结果是

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

Removing intermediate container c8d6e3c88cd8
Run Code Online (Sandbox Code Playgroud)

在 dockerfile 中我有ARG SSH_PRIVATE_KEY.

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

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

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

Sha*_*mir 3

我继续使用工具ONVAULT来处理 ssh 密钥。https://github.com/dockito/vault

另外,我的.ssh/config文件配置错误。新文件看起来像这样

Host *
  IgnoreUnknown AddKeysToAgent,UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa 
Run Code Online (Sandbox Code Playgroud)

我希望它能帮助将来的人。