具有私有存储库的 Elastic Beanstalk 多容器 Docker CannotPullContainerError

Posted

技术标签:

【中文标题】具有私有存储库的 Elastic Beanstalk 多容器 Docker CannotPullContainerError【英文标题】:Elastic Beanstalk Multicontainer Docker with private repository CannotPullContainerError 【发布时间】:2015-11-03 02:01:28 【问题描述】:

之前我使用的是单个 docker 容器弹性 beanstalk 环境。它能够使用我存储在 S3 上的登录凭据从私有 docker hub 存储库下载容器。 但是,我创建了一个新的多容器 docker 环境,从那时起我总是收到错误:

change="TaskArn:arn:aws:ecs:eu-west-1:188125317072:task/dbf02781-8140-422a-9b81-93d83441747d
ContainerName:aws-first-test Status:4 
Reason:CannotPullContainerError: 
Error: image test/awstest:latest not found ExitCode:<nil> PortBindings:[] SentStatus:NONE"

(我使用的容器与以前完全相同)

容器确实存在,并且环境与登录凭据位于同一位置(爱尔兰)

我的 Dockerrun.aws.json:


  "AWSEBDockerrunVersion": 2,
  "authentication": 
    "Bucket": "docker-ireland",
    "Key": ".dockercfg"
  ,

  "containerDefinitions": [

    
      "name": "aws-first-test",
      "image": "test/awstest",
      "memory": 250
    ,
    
      "name": "aws-second-test",
      "image": "test/awstest",
      "memory": 250
    
  ]

【问题讨论】:

您带有凭据的 json 有任何空格字符吗? 他们有。它们是由 docker 自动创建的。我刚刚删除了所有制表符、空格和换行符。但是,我得到了相同的结果。 【参考方案1】:

Dockerrun.aws.json 区分大小写,在 2.0 版中,键 authenticationbucketkey 已更改为小写。

此答案来自亚马逊 AWS 论坛:https://forums.aws.amazon.com/message.jspa?messageID=667098

【讨论】:

【参考方案2】:

在我的情况下,这个错误是因为我的 S3 配置文件中有以下内容:


  "server" :
  
    "auth" : "*****",
    "email" : "*****"
  

不是开玩笑,我有关键字“服务器”而不是注册表 url 服务(https://index.docker.io/v1/ 用于 docker)。

我一定是从一些博客或文档 idk 中复制的。感觉已经倾倒了。

【讨论】:

以上是关于具有私有存储库的 Elastic Beanstalk 多容器 Docker CannotPullContainerError的主要内容,如果未能解决你的问题,请参考以下文章

为 Elastic Beanstalk 上的 github 私有存储库访问设置 SSH 密钥

如何配置 GitHub Actions 以构建依赖于私有存储库的 Azure 静态 Web 应用程序?

AWS Elastic Beanstalk 使用 PHP 和私有 Composer 存储库

使用 Amazon Linux 2 挂钩配置 Elastic Beanstalk 以通过 SSH 访问私有 git 存储库

私有 Github 存储库的私有页面

“去获取”私有存储库的正确方法是啥?