Azure Web App for Containers 中跨订阅的 Azure 容器注册表

Tho*_*mas 4 azure docker azure-container-registry azure-web-app-for-containers

我目前正在尝试设置一个用于容器的 Azure Web 应用程序,将其链接到位于不同订阅内的 Azure 容器注册表。这就是为什么我最初的想法是使用Private RegistryWeb 应用程序内的选项卡Container Settings来输入所述注册表的凭据。

但是,当我保存并重新加载页面时,Azure Container Registry选项卡的设置现在已填充,并且Private Registry选项卡为空。问题是,我现在收到以下错误:

2020-01-21 21:51:12.951 ERROR - DockerApiException: Docker API responded with status code=NotFound, response={"message":"pull access denied for cliswebapi, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"}

我认为是因为没有存储密码。我该如何正确配置?

Cha*_* Xu 5

当您使用私有注册表时,Azure 容器注册表也是私有注册表,部署到 Web App for Containers 时,需要在此处设置环境变量:

  • DOCKER_REGISTRY_SERVER_USERNAME - ACR 服务器的用户名。
  • DOCKER_REGISTRY_SERVER_URL - ACR 服务器的完整 URL。(例如,https://my-server.azurecr.io。)
  • DOCKER_REGISTRY_SERVER_PASSWORD - ACR 服务器的密码。

请参阅如果使用 Azure 容器注册表,则需要设置一些应用设置中的更多详细信息。

如果您创建多个容器,则所有映像必须位于同一个注册表中。全部位于 Docker Hub 或 Azure 容器注册表中。请参阅所有映像必须使用相同的注册表中的更多详细信息。

更新:

消息显示您使用不同订阅中的 ACR 中的映像来部署 Web 应用程序。看来这是 Web App 中的一个错误,您可以在 Github 中看到该问题。建议您也许可以使用 ACR 的服务主体进行身份验证以及此处的步骤。