[英]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.