我希望能够读取文件的内容~/.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
我做错了什么或没有做什么?谢谢
我继续使用ONVAULT
toool 来处理 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