【问题标题】:Manage Docker Images in Azure App Services for Staging and Production管理用于暂存和生产的 Azure 应用服务中的 Docker 映像
【发布时间】:2020-09-09 20:15:39
【问题描述】:

我正在使用他们的应用服务在 Azure 上设置两个 Django Web 应用 - 一个用于暂存,一个用于生产。

我已将我的 Django 应用程序 docker 化并将图像存储在 Azure Container Registries 中。

现在,我注意到当我创建 webapp 时,它会从我想要使用的注册表 repo 中询问特定的标签,在 webapp 之后 我似乎无法更改已创建。

我的计划是用它们的版本标记图像(例如:090920201)并首先在暂存时推广这个版本(标记),在那里测试它,如果它按预期工作,使用相同的版本(标记)图像并推广它在产品上。

现在,我将图像标记为:staging 用于暂存环境,:prod 用于生产环境。当我对本地的特定版本感到满意时,我会推送带有各自标签的图像。

现在的问题是,由于在创建应用程序后我无法更改注册表存储库的标签,我必须推送相同的图像两次,一次带有 :staging 标签,如果该图像按预期工作,则推送相同的图像再次使用prod 标记图像。

这可能暂时有效,直到开发和登台同步。

那么问题出在哪里?

  • 在 Azure 中创建 Web 应用后,有没有办法更改图像的标签?
  • 有没有办法使用一致的标签(比如说:latest),但只能先部署到暂存区,在那里进行测试,然后再将其推广到生产环境?
  • 如果我们完全忽略我正在做的事情,您还有什么建议我使用相同的图像并首先在舞台上管理图像的推广,然后再到生产环境?

为一个直截了当的问题向世界巡回演唱会道歉。

【问题讨论】:

    标签: azure docker deployment azure-web-app-service


    【解决方案1】:

    不确定您是否查看过registry best practices,但您无法在部署后重新标记图像。

    您可以考虑通过在命名空间名称中包含插槽来标记您的图像,例如<registry-name>.azurecr.io/<app-svc-slot>/<image-name>:<version>。如果您要使用latest 绰号,我会标记最新的docker build 两次,即实际发布版本和最新版本。然后,您可以将这两个图像推送到您的注册表,或者只将标记为 latest 的一个推送到注册表中,就像在 https://docs.microsoft.com/en-us/azure/container-registry/container-registry-image-tag-version 中解释的那样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 2015-08-03
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2018-04-29
      相关资源
      最近更新 更多