gpt4 book ai didi

amazon-web-services - Amazon ECS 私有(private) DockerHub 存储库 : Unable to decode provided docker credentials error

转载 作者:IT老高 更新时间:2023-10-28 21:37:16 28 4
gpt4 key购买 nike

我在 DockerHub 上有一个私有(private)存储库,我正在尝试使用 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文件的所有操作如下:

  1. 将任务数改为 0
  2. 等待完成
  3. sudo stop ecs
  4. 修改配置文件
  5. sudo start ecs
  6. 将任务数更改为 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 .这里的代码注释中也提到了: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)

又是这样,报同样的错误……

最佳答案

花了一些时间查看 ECS 代理 (https://github.com/aws/amazon-ecs-agent) 的代码后,我意识到问题出在哪里。问题出在应该删除的电子邮件字段中!

所以,简单回顾一下如何做到这一点:

您需要按照此处的说明进行操作:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html .

但是,那里的所有示例都包括电子邮件字段。

ecs.config 应如下所示:

ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"<your auth token>"}}

要在创建实例时从 S3 容器加载 ecs.config,请执行以下操作:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html ,尤其是“在 Amazon S3 中存储 ecs.config 文件”和“在启动时从 Amazon S3 加载 ecs.config 文件”标题。

关于amazon-web-services - Amazon ECS 私有(private) DockerHub 存储库 : Unable to decode provided docker credentials error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33912280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com