繁体   English   中英

Jenkins 无法通过 ssh-agent 执行 docker login

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM