如何从azure发布管道查询当前部署到应用程序服务的docker映像?



我有一个Azure发布管道,它使用Azure Web App for Containers任务在Azure应用服务上部署docker映像。

该映像以some_image:$(Build.BuildId)的形式指定。管道按预期工作,并成功地使用最新构建的映像更新App Service。

我想从另一个释放管道执行docker run命令使用该图像。我注意到Docker任务的版本1允许我在docker映像上执行这样的docker run命令(不知道为什么版本2中缺少run),但是我如何指定docker映像?我如何获得哪个映像是当前部署在该应用程序服务?

现在可能太晚了,但是你想做的是从Azure资源管理器中获得LinuxFXVersion(如果你在Linux上运行docker)属性的值。

使用Azure PowerShell和CLI的组合,您可以使用这些命令来检索web应用程序上运行的当前图像:

$webAppProperties = (az webapp config show --subscription "<subscription-id>" --resource-group "<resource-group-name>" -n "<webapp-name>") | ConvertFrom-Json
$webAppProperties.linuxFXVersion

假设您对Azure管道的订阅具有正确的权限,您应该能够在接下来的步骤中使用此信息。

您可以在YAML管道中使用PowerShell或Shell脚本。由于您已经知道了容器注册表和映像名称,因此只需使用以下命令获取最新版本

az acr repository show-tags -n MyRegistry --repository MyRepository --top 1 --orderby time_desc --detail

https://learn.microsoft.com/en-us/cli/azure/acr/repository?view=azure-cli-latest az_acr_repository_show_tags

相关内容