1

有没有一种方法可以从 Azure 容器注册表中提取图像而无需使用以下应用设置?

DOCKER_REGISTRY_SERVER_URL DOCKER_REGISTRY_SERVER_PASSWORD

我尝试为我的应用服务提供适当的 RBAC,并使用 Azure Web App on Container Deploy DevOps 任务,但这不起作用。

目前,我使用管理员用户/密码为 CD 设置了它,但这不是我想投入生产的选项。

我得到的错误信息(当我没有设置 DOCKER_REGISTRY_SERVER_URL 和 DOCKER_REGISTRY_SERVER_PASSWORD 时):

2020-06-18T11:01:51.313Z 信息 - 从 Docker 中心拉取图像:xx.azurecr.io/xx:xx

2020-06-18T11:01:51.545Z 错误 - DockerApiException: Docker API 响应状态码=InternalServerError, response={"message":"Get https://xx.azurecr.io/v2/xx/manifests/xx:未经授权:需要身份验证"}

2020-06-18T11:01:51.553Z 错误 - 图像拉取失败:验证 docker 图像配置和凭据(如果使用私有存储库)

4

1 回答 1

1

应用设置中的环境变量:

DOCKER_REGISTRY_SERVER_URL DOCKER_REGISTRY_SERVER_PASSWORD

当您需要从 Azure 容器注册表中提取映像时,这些是必要的。您需要知道应用程序设置中的 ACR 凭据与 Web 应用程序的托管标识之间的正确顺序。

Web App 的托管标识用于在 Web App 运行时访问其内部的其他资源。注意,Web App 正在运行。这意味着图像已经从 ACR 中拉出。所以你看,ACR 的凭证将在托管身份之前使用。如果不设置凭证,则无法拉取镜像,导致 Web App 无法正常运行。目前,托管标识没有意义。

于 2020-06-19T01:30:46.970 回答