我正在将旧版本的YouTrack升级到最新的Docker映像。该映像是有状态的,因为它会将其配置和数据存储在已安装到容器的EFS卷上。
在尝试部署版本升级时遇到问题,表现为:
malloc
(引用的日志仅显示相同的错误,后跟一些“活动失败”条目。)
好像好像:
我在this answer中读到,可以将滚动更新配置为对于多实例环境是不可变的,这会强制在每个部署上创建一个新实例,这听起来似乎可以解决问题,但是我的单容器单实例环境没有该选项(滚动更新类型只能为“禁用”)。
我已尝试将Command failed on instance. Return code: 1 Output:
2500dea09a203c18d36aa997159750e8f1b37a7ad0437bc109a5073f38ce24be Docker container quit unexpectedly
after launch: Docker container quit unexpectedly on Mon Jul 6 23:43:26 UTC 2020: YouTrack is already
running. Check snapshot logs for details. Hook /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh
failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
插入实例以停止旧容器,但是又有立即重新启动它-已尝试this answer的eb ssh
和{{3} }。
是否有某种方法可以将EB配置为在启动新容器之前停止旧容器(或使用新实例,这虽然不太理想,但可以完成工作)?
成功!不是永久配置,而是足够好的解决方法-this article给出了有关如何手动停止容器的答案,这只是运行部署的一种情况。
步骤是:
eb ssh -i <instance id>
SSH到ElasticBeanstalk实例。sudo stop eb-docker
告诉Upstart停止容器。docker ps
来验证该容器不再运行。