通过CLI部署命令与Dockerrun.aws.json部署到elasticbeanstalk

我运行一个elasticbeanstalk应用程序,有多个环境。 这个特定的应用程序托pipedocker容器,主持一个Web服务。

要将新版本的应用程序上传和部署到其中一个环境中,可以通过Web客户端并单击“上传和部署”,然后从文件选项中select我的最新Dockerrun.aws.json文件,该文件引用最新版本的私人托pipe容器。 上传和部署工作正常,没有问题。

为了让自己和其他人更容易部署,我希望能够使用CLI来上传和部署Dockerrun.aws.json文件。 如果我使用cli eb deploy命令而没有任何特殊的configuration,那么正常的压缩整个应用程序并将其发送到主机的过程就会发生并失败(不能推断出它只需要读取Dockerrun.aws.json文件)。

我发现了一个关于使用.elasticbeanstalk / config.yml文件控制上传内容的文档。

使用这个语法:

deploy: artifact: Dockerrun.aws.json

该文件已上传并实际成功部署到第一批实例,然后始终无法部署到第二组实例。

失败错误的味道:“集装箱意外退出…”

任何人都可以解释,或提供使用CLI的规范方法的部署单个docker集装箱应用程序的链接?

所以事实certificate,我用config.yml列出的方法是正确的。 我看到部分成功部署的原因是因为之前在主机上运行的Docker容器没有被EB停止。

我认为发生的事情是,EB正在发送类似的东西

sudo docker kill --signal=SIGTERM $CONTAINER_ID而不是更常见的sudo docker stop $CONTAINER_ID

我运行的特定容器没有响应SIGTERM,所以它只是坐在那里。 当我用SIGKILL在本地testing它时,它显然会停止,但是SIGTERM本身并不能阻止它。

问题不在于部署方法,而在于EB产生的输出和我的曲解混淆。

既然你已经要求一个链接,我提供了一个链接,我最初使用elasticbeanstalk cli成功地testing和部署docker。

请看看这是否也可以帮助你: http : //victorlin.me/posts/2014/11/26/running-docker-with-aws-elastic-beanstalk