Итак, я получил реестр докеров (реестр контейнеров Azure), в котором включен режим администратора и определены пароли.
В общем, моя консоль разработчика говорит следующее:
Successfully tagged croc-hunter:latest
[Pipeline] sh
+ docker tag croc-hunter reponame.azurecr.io/croc-hunter:master-862fa81
[Pipeline] sh
+ docker push reponame.azurecr.io/croc-hunter:master-862fa81
The push refers to repository [reponame.azurecr.io/croc-hunter]
d99341ecd82c: Preparing
99e8e786d815: Preparing
7790d1ef8abe: Waiting
3a3beb3675ab: Waiting
99e8e786d815: Retrying in 5 seconds
d99341ecd82c: Retrying in 5 seconds
8c11d1b2af3f: Retrying in 5 seconds
unknown: The operation is disallowed.
здесь я вхожу в реестр Docker:
withCredentials([[$class : 'UsernamePasswordMultiBinding', credentialsId: config.container_repo.jenkins_creds_id,
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "docker login -u ${env.USERNAME} -p ${env.PASSWORD} ${config.container_repo.host}"
}
и Дженкинс говорит, что все хорошо:
+ docker login -u **** -p **** ****.azurecr.io
Login Succeeded
Я даже дошел до создания сервисного принципа и подключил его к скрипту jenkins через ENV vars и выполнил его до входа в докер:
container('az') {
withCredentials([azureServicePrincipal(credentialsId: config.container_repo.azure_creds_id,
subscriptionIdVariable: 'SUBS_ID',
clientIdVariable: 'CLIENT_ID',
clientSecretVariable: 'CLIENT_SECRET',
tenantIdVariable: 'TENANT_ID')]) {
sh 'az login --service-principal -u $CLIENT_ID -p $CLIENT_SECRET -t $TENANT_ID'
}
}
, что приводит к этомуконсоль, так что все хорошо:
[
{
"cloudName": "AzureCloud",
"id": "****",
"isDefault": true,
"name": "XXX Azure",
"state": "Enabled",
"tenantId": "****",
"user": {
"name": "****",
"type": "servicePrincipal"
}
}
]
НО, это приводит к тем же ошибкам повторных попыток .... В чем здесь проблема ?!Следует отметить, что я не могу зайти в свой реестр с моего компьютера, либо войдя в docker login -u -p -
.Повторная попытка в секунду и затем запрещение.
Может кто-нибудь помочь мне отладить это?В идеале я хочу, чтобы мой реестр не требовался для авторизации через az cli, просто через имя пользователя и пароль.