【问题标题】:Deploy image to AWS Elastic Beanstalk from private Docker repo从私有 Docker 存储库将映像部署到 AWS Elastic Beanstalk
【发布时间】:2015-10-02 10:58:38
【问题描述】:

我正在尝试从其私有存储库中提取 Docker 映像并将其部署在 AWS Elastic Beanstalk 上,并借助 Dockerrun.aws.json 打包在 zip 中。它的内容是

{
    "AWSEBDockerrunVersion": "1",
    "Authentication": {
        "Bucket": "my-bucket",
        "Key": "docker/.dockercfg"
    },
    "Image": {
        "Name": "namespace/repo:tag",
        "Update": "true"
    },
    "Ports": [
        {
            "ContainerPort": "8080"
        }
    ]
}

其中“my-bucket”是我在 s3 上的存储桶名称,它使用与我的 BS 环境相同的位置。 key 中设置的配置是

的结果
$ docker login

在 docker2boot 应用程序的终端中调用。然后将其复制到“my-bucket”中的文件夹“docker”。图像肯定存在。 之后,我将带有 dockerrun 文件的 .zip 上传到 EB 并在部署时得到 ​​p>

Activity execution failed, because: WARNING: Invalid auth configuration file

我错过了什么? 提前致谢

【问题讨论】:

  • 您可以尝试将“docker/.dockercfg”更改为不那么棘手的东西吗? “myapp.dockercfg”怎么样? EBS 因其对数据验证的不容忍而臭名昭著。
  • 感谢您的评论,@Tal,但仍然没有运气,并且存在同样的问题

标签: amazon-web-services docker amazon-elastic-beanstalk


【解决方案1】:

Docker 已将配置文件路径从~/.dockercfg 更新为~/.docker/config.json。他们还利用这个机会对配置文件格式进行了重大更改。

但是,AWS 仍然需要前一种格式,即在 ~/.dockercfg (see the file name in their documentation) 中使用的格式:

{
  "https://index.docker.io/v1/": {
    "auth": "__auth__",
    "email": "__email__"
  }
}

这与~/.docker/config.json中使用的新格式不兼容:

{
    "auths": {
        "https://index.docker.io/v1/": {
            "auth": "__auth__",
            "email": "__email__"
        }
    }
}

虽然它们非常相似。因此,如果您的 Docker 版本生成了新格式,只需去掉 auths 行及其对应的大括号即可。

【讨论】:

猜你喜欢
  • 2020-07-03
  • 2020-06-23
  • 2014-12-16
  • 1970-01-01
  • 2017-01-29
  • 2016-10-27
  • 2020-03-24
  • 1970-01-01
  • 2014-03-22
相关资源
最近更新 更多