У меня есть приватный репозиторий на DockerHub, который я пытаюсь развернуть с ECS. Я всегда получаю следующее сообщение об ошибке:Amazon ECS private DockerHub repo: Не удалось декодировать предоставленную учетную запись docker error
Unable to decode provided docker credentials module="ecs credentials" type="dockercfg"
или если я пытаюсь с типом грузчиком:
Unable to decode provided docker credentials module="ecs credentials" type="docker"
Я перепробовал все возможности, указанные на форумах разработчиков ECS.
Я пробовал:
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"auth":"<token>","email":"<email>"}}'
Я также попытался:
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/":{"username":"<username>","password":"<password>","email":"<email>"}}'
а также (из-за документы на https://godoc.org/github.com/aws/amazon-ecs-agent/agent/engine/dockerauth):
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA='{"https://index.docker.io/v1/<username>":{"username":"<username>","password":"<password>","email":"<email>"}}'
Я также попытался без '' и с «вокруг» JSON .. тот же эффект. Я всегда получаю ту же ошибку.
Я должен добавить, что получаю ecs.config из контейнера S3, который отлично работает. Я также перепечатал файл вручную в случае, если есть некоторая сомнительная формация при загрузке файла (хотя я не вижу, как это может произойти, поскольку файл S3 поступает как поток байтов).
Если я SSH в экземпляр и сделайте следующее:
docker login --username=<username> --password=<password> --email=<email>
можно затем вытащить изображение успешно: docker pull A/B:latest
Однако, даже после того, как войти (и, следовательно, Докер генерирует ~/.docker/config.json), я все равно получаю ту же ошибку от ECS.
Я должен упомянуть все операции изменения файла ecs.config были сделаны следующим образом:
- Изменение числа задач до 0
- Wait, чтобы закончить
sudo stop ecs
- Изменить конфигурационный файл
sudo start ecs
- Изменение количества заданий на 1
Repeat ...
Это становится очень сложно .. Как следует эта работа или как есть она меняется, поскольку документация была написана?
Любая помощь будет оценена по достоинству.
EDIT
Я также попытался установить Docker авторизацию в конфигурационном файле JSON в /etc/ecs/ecs.config.JSON:
{
"EngineAuthType": "docker",
"EngineAuthData": {
"https://index.docker.io/v1/": {
"username": "<me>",
"password": "<password>",
"email": "<email>"
}
}
}
Конфигурация JSON для этого описана здесь: https://godoc.org/github.com/aws/amazon-ecs-agent/agent/config. Он также упоминается в коде комментарии здесь: https://github.com/aws/amazon-ecs-agent/blob/b197eddd9d5272eeac7dddaa2a84cc4c85522354/agent/engine/dockerauth/doc.go
Более конкретно:
These keys may be set by either setting the environment variables "ECS_ENGINE_AUTH_TYPE" and "ECS_ENGINE_AUTH_DATA" or by setting the keys "EngineAuthData" and "EngineAuthType" in the JSON configuration file located at the configured "ECS_AGENT_CONFIG_FILE_PATH" (see http://godoc.org/github.com/aws/amazon-ecs-agent/agent/config)
Это снова дает ту же ошибку ...