Я создаю конвейер Jenkins для развертывания моего приложения. Я построил и pu sh docker изображение до AWS ECR. Последний шаг - выполнение s sh для сервера развертывания (EC2) и запуск контейнера 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\""
}
}
}
}
Однако Дженкинс сбой при сборке, и я получил ошибку:
docker: Error response from daemon: Get https://xxx: no basic auth credentials.
Эта команда не смогла войти в ECR. Но он работает успешно, если я выполняю ту же команду на сервере развертывания.