在 Elastic Beanstalk Multicontainer 中更新至最新 Docker 镜像

在 Elastic Beanstalk Multicontainer 中更新至最新 Docker 镜像

我正在使用多容器设置在 Elastic Beanstalk 上运行一个网站。我想知道提取最新图像的首选策略是什么。

在 CI 服务器上,成功提交到 master 后,我将构建 Docker 镜像,将它们发送到 AWS Elastic Container Service 中的存储库,然后运行如下操作:

CURRENT_VERSION=`aws elasticbeanstalk describe-environments --environment-names $ENVIRONMENT_NAME | jq -r '.Environments[0].VersionLabel'`
aws elasticbeanstalk update-environment --environment-name $ENVIRONMENT_NAME --version-label $CURRENT_VERSION`

这大致可行,但我想知道这是否是更新网站的最有效方法。更新环境的文档说得很少。

此外,环境由 4 个不同的图像组成,每个图像都有自己的存储库,并由不同的团队独立更新。问题是,如果环境已经在执行更新,则更新有时会“冲突”。我可以等待Status“就绪”并AbortableOperationInProgress变为 false,但我不想让 CI 服务器可能暂停几分钟。

我原本想使用 Amazon SQS + Lambda 来将它们排队,但感觉有点大材小用。如果 EBS 已经内置了这样的更新队列,那将非常有帮助。我不是第一个遇到这个问题的人。

欢迎提出任何想法和指点。

谢谢,

胡安

相关内容