Я получаю эту ошибку при попытке преобразовать изображение sh docker в ECR из конвейерного задания jenkins:
12:53:22 The push refers to repository [XXX.dkr.ecr.us-east-1.amazonaws.com/YYY]
12:53:22 bf7d1e178283: Preparing
12:53:22 45423e7f92ab: Preparing
12:53:22 b4d6d89cf8b0: Preparing
12:53:22 no basic auth credentials
Я использую этот конвейерный скрипт для сборки и pu sh docker image:
stage('Build and push Docker') {
steps {
dir("$WORK_DIR") {
script {
sh("sudo $(aws ecr get-login --no-include-email --region $REGION)")
sh("sudo docker build -t $IMAGE .")
sh("sudo docker tag $IMAGE $ECR_REPO/$IMAGE")
sh("sudo docker push $ECR_REPO/$IMAGE")
}
}
}
}
Я попытался выполнить сценарий с и без sudo
Выполнение той же последовательности команд в оболочке на хосте Jenkins, что и у пользователя root работал без проблем.
Это мои настройки и исправления, которые я пробовал:
- Jenkins 2.204.1 работает как пользователь jenkins
- Плагин Amazon ECR 1.6
- Я добавил AWS учетные данные в Jenkins
- Пытался использовать сценарий оболочки, следуя командам pu sh в соответствии с инструкциями по ECR, а также используя docker трубный плагин
docker.withRegistry(REPO_URL, 'ecr:region:creds-id')
- Пытался удалить
$HOME/.docker/config.json
файл, как предложено здесь - Пытался работать как jenkins и root user (
sudo docker push
) - jenkins user has root разрешений, и я добавил его в docker группу, как указано здесь
В прошлом, когда запуск Jenkins как docker image Я получил docker pu sh для работы, запустив контейнер как root пользователь.
Возможно, причина root для этой проблемы this :
Docker для входа в систему требуется, чтобы пользователь использовал sudo или был root, за исключением случаев, когда:
- Подключение к удаленному демону, например docker -машина docker engine.
- Пользователь добавлен в группу docker. Это повлияет на безопасность вашей системы; группа docker эквивалентна root. См. Docker Поверхность атаки демона для деталей.
Но тогда добавление пользователя jenkins в группу docker должно работать ?!
PS Хотя мой вопрос похож на этот вопрос SO , ответ на него не решил мои проблемы: - (