如何从 Azure DevOps 管道运行“docker login azure”

Dav*_*wis 5 azure docker azure-devops azure-pipelines-release-pipeline

我有一个 shell 脚本,用于将容器部署到 Azure 容器实例,该脚本使用 Azure CLI(在 Linux 上)在本地运行良好,但我在从管道任务执行登录到 Azure 时遇到问题。

在本地,以下命令将打开浏览器进行登录:

docker login azure

文档建议,要在管道任务中执行相同的操作,我可以传入客户端 ID 和客户端密钥。我认为它应该看起来像这样:

docker login azure --client-id $servicePrincipalId --client-secret $servicePrincipalKey --tenant-id $tenantId

但是,当我在管道中运行它时,我收到此错误:

unknown flag: --client-id

docker login azure --helprun local 告诉我这--client-id是一个有效的标志,所以我想知道是否有另一种方法可以在 Azure DevOps 管道中执行此操作?

dav*_*sit 1

Docker 的 Azure 管道任务允许您使用服务连接来执行“docker 登录”样式任务。要使用用户名/密码组合,您首先需要创建“Docker 注册表”类型的服务连接。然后指定“其他”类型。您可以在此处输入您的凭据。正如您所期望的,为了安全起见,密码被混淆了。

现在,您可以在 azure devops pipeline docker 任务中使用此服务连接。

引用来源:

https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#docker-registry-service-connection

https://learn.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops&tabs=yaml#docker-hub-or-others