【发布时间】:2018-04-17 06:51:59
【问题描述】:
我已将 ~/.ssh 目录从主机安装到我的开发 docker 容器中,并尝试将部署密钥添加到入口点中的 ssh 代理,如下所示:
#!/bin/bash
set -e
#add the deployment key
if [[ ! -z ${DEPLOYMENT_SSH_KEY} ]] ; then
echo "Adding deployment ssh key ${DEPLOYMENT_SSH_KEY} to ssh agent"
eval $(ssh-agent -s) && ssh-add /.ssh/${DEPLOYMENT_SSH_KEY}
else
echo "Deployment ssh key is not defined"
fi
echo "STARTING PHP FPM, CMD $@"
docker-php-entrypoint "$@"
根据日志正常添加密钥:
代理 pid 8
将部署 ssh 密钥 id_rsa 添加到 ssh 代理
添加的身份:/.ssh/id_rsa(rsa w/o comment)
但是,它实际上最终没有向代理添加任何密钥,并且我无法从容器内克隆我的存储库。在容器中执行的命令ssh-add -l 说
无法打开与您的身份验证代理的连接。
这是为什么呢?我听说过 SSH 代理转发作为替代方案,但我想知道为什么我尝试过的方法不起作用?
【问题讨论】:
-
docker-php-entrypoint是否最终将正在运行的进程切换为不同的用户? -
@DanLowe 它使用
exec运行命令:github.com/docker-library/php/blob/master/docker-php-entrypoint