Вход в ECR реестр с помощью Python Docker SDK не работает должным образом - PullRequest
0 голосов
/ 17 октября 2018

Предполагая, что я получил учетные данные ecr от boto уже в объекте, называемом creds, когда я делаю:

client = from_env()
client.login(creds.username, password=creds.password, registry=creds.endpoint)

Я получаю:

{u'IdentityToken': u'', u'Status': u'Login Succeeded'}

Отлично!И я проверяю:

client.api.__dict__

Я получаю:

{'_auth_configs': {'auths': {'registry_i_just_logged_into': {'email': None,
'password': 'xxxxxxxxxxxxx',
'serveraddress': 'registry_i_just_logged_into',
'username': 'xxxxxxx'},
u'some_other_registry': {},
'credsStore': u'osxkeychain'}
.... (etc, etc)

Все еще так хорошо.Но когда я тогда делаю:

client.images.pull("registry_i_just_logged_into/some_repo", tag="latest")

Или когда я делаю (из командной строки):

docker pull registry_i_just_logged_into/some_repo:latest

Я всегда получаю:

Error response from daemon: pull access denied for some_repo, repository does not exist or may require 'docker login'

Несмотря наДело в том, что если я делаю (с тем же именем пользователя и паролем, которые я использовал для входа в систему):

client.images.pull("registry_i_just_logged_into/some_repo", tag="latest", auth_config={'username': creds.username, 'password': creds.password})

Работает без проблем.

Так что я предполагаю, что это проблема спорядок определения того, какой реестр использовать, но, похоже, докер sdk должен обработать это, если ключ уже существует в _auth_configs.

Что я делаю не так?

Спасибо!

1 Ответ

0 голосов
/ 11 марта 2019

Short : rm -rf ~/.docker/config.json

Long : Удалить свойства credsStore, auths и credSstore из ~/.docker/config.json

Объяснение : Возможно, вы уже пытались войти в систему.Итак, ваш Docker config.json имеет свойства credsStore, auths и credSstore.Например:

  "credSstore" : "osxkeychain",
  "auths" : {
    "acc_id_1.dkr.ecr.us-east-1.amazonaws.com" : {

    },
    "acc_id_2.dkr.ecr.us-east-1.amazonaws.com" : {

    },
    "https://acc_id_1.dkr.ecr.us-east-1.amazonaws.com" : {

    },
    "https://acc_id_2.dkr.ecr.us-east-1.amazonaws.com" : {

    }
  },
  "HttpHeaders" : {
    "User-Agent" : "Docker-Client/18.06.1-ce (darwin)"
  },
  "credsStore" : "osxkeychain"
}
...