【发布时间】:2015-11-25 18:57:01
【问题描述】:
我在 DockerHub 上有一个私有存储库,我正在尝试使用 ECS 进行部署。我总是收到以下错误:
Unable to decode provided docker credentials module="ecs credentials" type="dockercfg"
或者如果我尝试使用 docker 类型:
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 周围不使用 '' 和使用 "" .. 效果相同。我总是遇到同样的错误。
我应该补充一点,我正在从一个运行良好的 S3 容器中获取 ecs.config。我还手动重新键入了文件,以防在下载文件时出现一些可疑的格式(尽管我不知道这是怎么回事,因为 S3 文件以字节流的形式出现)。
如果我通过 SSH 连接到实例并执行以下操作:
docker login --username=<username> --password=<password> --email=<email>
然后我可以成功拉取图像:docker pull A/B:latest
但是,即使在我登录后(因此 docker 会生成 ~/.docker/config.json 文件),我仍然会从 ECS 收到相同的错误。
我应该提到更改 ecs.config 文件的所有操作如下:
- 将任务数更改为 0
- 等待完成
-
sudo stop ecs - 更改配置文件
-
sudo start ecs - 将任务数更改为 1
重复...
这变得非常令人沮丧.. 这应该如何工作或自编写文档以来它发生了哪些变化?
任何帮助将不胜感激。
编辑
我还尝试在 /etc/ecs/ecs.config.json 的 JSON 配置文件中设置 docker auth:
{
"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。这里的代码cmets中也有提到:https://github.com/aws/amazon-ecs-agent/blob/b197eddd9d5272eeac7dddaa2a84cc4c85522354/agent/engine/dockerauth/doc.go
更具体地说:
可以通过设置环境变量来设置这些键 “ECS_ENGINE_AUTH_TYPE”和“ECS_ENGINE_AUTH_DATA”或通过在位于配置的“ECS_AGENT_CONFIG_FILE_PATH”的JSON配置文件中设置键“EngineAuthData”和“EngineAuthType”(参见http://godoc.org/github.com/aws/amazon-ecs-agent/agent/config)
又是这样,报同样的错误……
【问题讨论】:
标签: amazon-web-services docker docker-registry dockerhub amazon-ecs