Дженкинс не может выполнить вход в Docker через ssh-agent

Я создаю конвейер Jenkins для развертывания моего приложения. Я создал и вставил образ докера в AWS ECR. Последний шаг - выполнение ssh для сервера развертывания (EC2) и запуск док-контейнера на основе последнего созданного образа.

Это мой сценарий:

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""
                    }
                }
            }
        }

Однако Дженкинс построил ошибку, и я получил ошибку:

docker: Error response from daemon: Get https://xxx: no basic auth credentials.

Эта команда не может войти в ECR. Но это работает успешно, если я выполняю ту же команду на сервере развертывания.

Всего 1 ответ


Похоже, что-то не так с вашим escape-символом, попробуйте без использования этого (я полагаю, у вас есть допустимый URL-адрес ecr в переменной $ ecrURI)

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"

Есть идеи?

10000