Azure az cli Docker Hub Web 应用程序资源配置

问题描述 投票:0回答:3

我正在尝试设置一个脚本来自动为我的应用程序创建新环境,并且我需要一个 docker web 应用程序。 问题是我需要从 docker hub 中提取图像。 当我在 juste setup 中从界面创建一个环境时,如下所示: Screen of a docker configuration

问题是我不知道如何通过 az cli 在 Docker Hub 上配置“Source de registre”。

目前我用来创建新的 Web 应用程序资源的命令是这个

az webapp create -g name_of_group -p name_of_plan -n resource-test2 -i https://registry.hub.docker.com/publisher/name_of_image:version -s name_of_image -w my_password

这个命令的问题是它给了我这个配置

Screenshot of a configuration

这不起作用,因为我无法登录(可能是因为它没有配置为 Docker Hub 注册表)。

您知道如何在 az cli 命令中指定此配置吗?谢谢

azure docker azure-cli dockerhub
3个回答
0
投票

要部署存储在私有注册表或 Docker Hub 中的镜像,您可以设置以下环境变量:

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

在此处获取更多详细信息。您可以使用 CLI 命令 az webapp config appsettings set

 来完成此操作。
    


0
投票
最近从我的私有 docker hub 存储库中的容器部署 azure cloud webapp 时遇到了同样的问题。 UI 体验工作正常,但是当我使用 azure cli 和“az webapp create ...”执行此操作时,最终遇到了同样的问题。创建 web 应用程序后,我能够通过使用“az webapp config container set ...”命令来修复它。请参阅下文和我的

github 存储库

# First create the webapp with a docker container: ~$ az webapp create -n $webAppName -g $resGroup -p $servicePlan -i $containerImg -s $dockerUsr -w $dockerPass --tags Lifecycle=Test # Update docker container settings with your private docker hub repo credentials: ~$ az webapp config container set --name $webAppName --resource-group $resGroup --docker-custom-image-name 'DOCKER|dockeruser/myrepo:tweb1' --docker-registry-server-url 'https://index.docker.io/v1' --docker-registry-server-user 'dockeruser' --docker-registry-server-password 'xxxxxxxxxxx'
    

0
投票
让它工作起来很棘手,特别是如果您想使用用户分配的身份而不是 ACR 用户名/密码。

这就是我如何授予应用程序服务访问权限,以使用用户分配的托管身份从 ACR 中提取图像。

首先,我创建了应用程序服务:

$AppService = az webapp create ` --name $AppServiceName_container_linux ` --acr-use-identity ` --plan $AppServicePlan_linux ` --resource-group $rgname ` --container-image-name $imagePath ` --assign-identity $identityId ` --output json | ConvertFrom-Json
然后,我单独设置有权从ACR拉取图像的身份

$property = "properties.siteConfig.AcrUserManagedIdentityID=${ClientID}" $tmp = az resource update ` --ids $appServiceID ` --set $property ` --output json | ConvertFrom-Json
您可以运行以下命令来验证身份设置是否正确:

$settings = az webapp config show ` --resource-group $rgname ` --name $AppServiceName_container_linux ` --output json | ConvertFrom-Json Write-Host "`nThese two settings must be set for successful ACR pull:" Write-Host "acrUseManagedIdentityCreds='$($settings.acrUseManagedIdentityCreds)'" Write-Host "acrUserManagedIdentityID='$($settings.acrUserManagedIdentityId)'"
 acrUseManagedIdentityCreds 应设置为 true,并且 acrUserManagedIdentityID 应包含您的托管身份的 GUID。

我在这里写了一篇关于这个问题以及如何解决它的更深入的文章

https://nestenius.se/2024/08/27/deploy-a-container-to-azure-app-services-using-azure -cli-和用户分配的托管身份/

© www.soinside.com 2019 - 2024. All rights reserved.