我有一个私人docker存储库,用于存储构建映像。 我复制了我的注册表证书并更新了我的/ etc / hosts文件,以便从我的本地计算机验证注册表。
我可以使用'sudo docker login -u xxx -p xxx registry-name:port'
但是当我从gitlab-ci阶段尝试相同的docker login命令时,它失败并出现此错误:
sudo:没有tty存在且没有指定askpass程序。
这就是我试图实现这一目标的方式。
ssh manohara@${DEPLOY_SERVER_IP} "sudo docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}"
我也尝试在/ etc / sudoers文件的底部添加这个gitlab-runner ALL=(ALL) NOPASSWD: ALL
,但没有运气
我哪里错了?
答案 0 :(得分:0)
根据此Source,您可以使用
ssh -t remotehost "sudo ./binary"
-t分配一个伪tty。
或者在你的例子中:
ssh -t manohara@${DEPLOY_SERVER_IP} "sudo docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY}"