У меня есть следующий код:
token = boto3.Session().client('ecr').get_authorization_token()
token = token['authorizationData'][0]
username, password = b64decode(token['authorizationToken']).decode().split(':')
Здесь я вижу имя пользователя = AWS и пароль.Если я использую эти учетные данные в командной строке с docker login -u AWS -p xxx [SERVER]
, я получаю «Login Succeeded», и тогда я могу docker push
.
Однако в Python Docker SDK я делаю:
docker_client = docker.from_env()
login_response = docker_client.login({
'username': username,
'password': password,
'registry': token['proxyEndpoint'],
})
с ответом:
{'IdentityToken': '', 'Status': 'Login Succeeded'}
но когда я это сделаю, то:
docker_client.images.push()
Я получу ошибку об отказе в доступе.
Если я впервые войду в систему с CLI,тогда скрипт python работает.