如何为CI管道设置Azure应用程序服务多容器应用程序



我们已经实现了一个CI/CD管道,以自动构建新版本并将其部署到Azure应用程序服务实例的暂存槽中。我们构建新的容器映像并将其推送到标有:latest的Azure容器注册表,然后触发webhook重新部署暂存槽。将此插槽热交换到生产也可以。

但是,如果我们在暂存上尝试尚未准备好进行生产的新功能,那么只需重新启动生产插槽就会自动加载所有:latest映像。这并不理想。此外,恢复热插拔将不起作用,因为现在两个插槽都在:latest上。

理想情况下,我们会用构建号标记我们的docker映像,但我看不到一种简单的方法来动态更新多容器配置(docker-compose.yml(以使用这些构建号。我们的CI/CD管道目前在Bitbucket管道上运行,但如果需要,我们也可以切换到Azure DevOps。关于如何解决这个问题,有什么提示吗?

以下是我到目前为止的想法,但理想情况下有一种更简单的方法,不需要从管道访问服务原则:

  • 在Azure上创建服务主体以在管道中使用
  • 使用BITBUCKET_BUILD_NUMBER标记当前docker图像(例如,请参见此处(
  • 创建一个新的docker-compose.yml,将BITBUCKET_BUILD_NUMBER替换为例如sed
  • 运行az webapp config container set --multicontainer-config-file docker-compose.yml -s staging(请参阅此处(
  • 这也应该自动触发暂存插槽的重新加载

如果你能想出一个更简单的方法,请告诉我。

相关内容

最新更新