是否有一种方法可以从Azure容器注册表中提取图像,而不必使用以下应用程序设置?
DOCKER_REGISTRY_SERVER_URL DOCKER_REGISTRY_SERVER_PASSWORD
我尝试将适当的RBAC分配给我的App Service,并在Container Deploy DevOps任务上使用Azure Web App,但这不起作用。
目前,我已经使用admin用户/密码将其设置为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,响应= {“消息”:“获取https://xx.azurecr.io/v2/xx/manifests/xx:未授权:需要身份验证”}
2020-06-18T11:01:51.553Z错误-映像提取失败:验证Docker映像配置和凭据(如果使用私有存储库)
答案 0 :(得分:0)
应用程序设置中的环境变量:
DOCKER_REGISTRY_SERVER_URL DOCKER_REGISTRY_SERVER_PASSWORD
当需要从Azure容器注册表中提取映像时,是必需的。您需要知道应用设置中ACR的凭据和Web应用的托管身份之间的正确顺序。
Web App的托管身份用于在Web App运行时访问其内部的其他资源。当心,Web App正在运行。这意味着图像已经从ACR中拉出。因此,您会看到,将在受管身份之前使用ACR的凭据。如果未设置凭据,则无法提取图像,因此Web App无法正常运行。目前,托管身份没有意义。