从私有Docker仓库将映像部署到AWS Elastic Beanstalk

我试图从它的私有仓库中提取Docker镜像,并在Dockerrun.aws.json的zip帮助下将其部署在AWS Elastic Beanstalk上。 它的内容是

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

“我的水桶”是我的水桶在s3上的名字,它使用与我的BS环境相同的位置。 在关键设置的configuration是的结果

 $ docker login 

在docker2boot应用程序的terminal中调用。 然后将其复制到“my-bucket”中的“docker”文件夹中。 图像确实存在。 之后,我将dockerrunfile upload到.zip,然后部署

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

我错过了什么? 提前致谢

Docker已经将~/.dockercfg的configuration文件path更新为~/.docker/config.json 。 他们还利用这个机会对configuration文件格式进行了重大更改。

然而,AWS仍然期望使用~/.dockercfg ( 请参阅文档中的文件名 ):

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

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

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

他们虽然很相似。 因此,如果您的Docker版本生成新格式,只需剥去auths行及其相应的大括号即可。