这是我的 Dockerfile 的入口点:
ENTRYPOINT ssh-agent bash\
&& ssh-add directory/id_rsa
如果我使用 运行我的 docker 容器docker run my_conatiner -rm
,我会得到:
Could not open a connection to your authentication agent.
而不是提示输入私钥密码。
但是,如果我使用 运行ENTRYPOINT /bin/bash
并手动粘贴这两个命令,系统会提示我插入私钥的密码。
答案1
运行ssh-agent bash
将启动一个新bash
进程,并设置环境变量。但是由于您没有提供任何输入,因此bash
退出,连同ssh-agent
原始的bash
,然后再次与您的没有任何连接ssh-agent
。以下是流程图,它们是如何调用的:
bash
'- ssh-agent bash
'- bash < no input, exits cleanly
'- ssh-add ...
你想要做的是ssh-agent
调用预期方式:
ENTRYPOINT eval `ssh-agent` \
&& ssh-add directory/id_rsa