![](/img/trans.png)
[英]Docker jenkins ssh-agent "not running inside container" on Ubuntu 22.04
[英]Jenkins can not execute docker login via ssh-agent
我创建了 Jenkins 管道来部署我的应用程序。 我构建了 docker 镜像并将其推送到 AWS ECR。 最后一步是对部署服务器 (EC2) 执行 ssh 并基于最后构建的镜像运行 docker 容器。
这是我的脚本:
stage('Deploy') {
steps {
script {
sshagent(['ssh-cridentials']) {
sh "ssh -o StrictHostKeyChecking=no jenkins@host sudo docker rm -f myapp"
sh "ssh -o StrictHostKeyChecking=no jenkins@host sudo docker image prune -a -f"
sh "ssh -o StrictHostKeyChecking=no jenkins@host \"cat /opt/aws/password.txt | sudo docker login --username AWS --password-stdin $ecrURI & sudo docker run -p 80:80 -d --name=myapp $imageURI\""
}
}
}
}
但是,Jenkins 构建失败,我收到错误消息:
docker: Error response from daemon: Get https://xxx: no basic auth credentials.
此命令无法登录 ECR。 但是如果我在部署服务器上执行相同的命令它会成功。
看起来您的转义字符有问题,请尝试不使用它(我相信您在变量 $ecrURI 中有有效的 ecr url)
sh "ssh -o StrictHostKeyChecking=no jenkins@host cat /opt/aws/password.txt | sudo docker login --username AWS --password-stdin $ecrURI & sudo docker run -p 80:80 -d --name=myapp $imageURI"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.