Docker 入口点不会提示我的输入

Docker 入口点不会提示我的输入

这是我的 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

相关内容