什么导致EB cli将文件名称1(app-123456-654321.zip)与文件名称2(9f1b.zip)打包在一起?

我有一个Docker容器,我试图部署到AWS弹性Beanstalk。 它可以docker build .eb local run没有问题。 我使用弹性beanstalk cli和eb deploy命令根据DockerfileDockerrun.aws.json文件打包容器并将其部署到AWS。

最初,我能够成功部署。 最近,在对容器内容进行了几天的工作之后,我尝试重新部署一个更新的版本,并得到一个错误,将我的应用程序/容器列为“已降级”。

当我的容器成功部署时,运行eb deploy创build了一个名称为app-123456_654321.zip的zip文件(存储在S3容器中)。

目前,在非运行状态下,生成的zip文件的名称只有4个字符(数字和字母),如0f4d.zip 。 我一直在configuration不成功。

我能够重新下载较旧的档案,并成功地重新部署(与容器内容的更新)。 这导致我相信与弹性beanstalkconfiguration有关的东西已经改变,我不知道。

在项目文件夹和.elasticbeanstalk/config.yml文件(参见下面的示例)中,好的和不好的档案之间没有明显的区别,除了不成功的yml在branch-defaults有第二个docker指令(见下文)除了default指令。

这一切都是说,是什么导致eb cli归档为文件名1(app-123456-654321.zip)和文件名2(9f1b.zip)。 我希望这可以揭示一些变化。


示例config.yml文件:

 branch-defaults: default: environment: eb-prod docker: environment: eb-prod global: application_name: eb-docker-app default_ec2_keyname: sample-key-file default_platform: 64bit Amazon Linux 2015.03 v2.0.0 running Docker 1.6.2 default_region: us-west-2 profile: eb-cli sc: null 

eb deploy使用的文件名基于ElasticBeanstalk应用程序版本的标签。 eb部署文档说您可以指定自己的标签,但不解释默认背后的逻辑。

如果你正在使用git,我相信默认的标签是从最近的标签和git commit hash生成的,这可能会解释你的“app-123456_654321.zip”。

如果你从相同的标签部署两次,我相信eb deploy只是使用提交散列速记,希望解释你看到的短版本,如“0f4d.zip”。