繁体   English   中英

使用CLI部署命令通过Dockerrun.aws.json部署到Elasticbeanstalk

[英]Deploy to elasticbeanstalk via CLI deploy command with Dockerrun.aws.json

我正在运行具有多个环境的Elasticbeanstalk应用程序。 这个特定的应用程序托管着托管Web服务的Docker容器。

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

为了简化本人和其他人的部署,我希望能够使用CLI上载和部署Dockerrun.aws.json文件。 如果我在没有任何特殊配置的情况下使用cli eb deploy命令,则会发生压缩整个应用程序并将其发送到主机的正常过程,并且会失败(无法推断出它只需要读取Dockerrun.aws.json文件)。

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

使用以下语法:

deploy: artifact: Dockerrun.aws.json

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

故障错误的味道是:“容器意外退出...”

谁能解释或提供使用CLI部署单个docker容器应用程序的规范方法的链接,或提供链接?

因此,事实证明,我在config.yml中列出的方法是正确的。 我看到部分成功的部署的原因是,EB并未阻止先前在主机上运行的docker容器。

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

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

我运行的特定容器没有响应SIGTERM,因此只能放在那里。 当我使用SIGKILL在本地对其进行测试时,它将(显然)正确停止,但是仅SIGTERM不能停止它。

问题不是部署方法,而是EB产生的输出和我的误解中的混淆。

由于您已请求一个链接,因此我提供了一个链接,该链接最初是我用来使用Elasticbeanstalk cli成功测试和部署docker的。

请查看是否也对您有帮助: https : //fangpenlin.com/posts/2014/11/25/running-docker-with-aws-elastic-beanstalk/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM