![](/img/trans.png)
[英]Azure DevOps Pipeline - Pushing to Azure Container Registry - Permission error
[英]Login to Azure Container Registry in Azure Pipeline
我无法按照文档使用“DockerCompose@0”任务登录到 Azure 中的容器注册表。
该文档建议使用:
variables:
azureContainerRegistry: Contoso.azurecr.io
azureSubscriptionEndpoint: Contoso
steps:
- task: DockerCompose@0
displayName: Container registry login
inputs:
containerregistrytype: Azure Container Registry
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
其中azureSubscriptionEndpoint是 ARM 的服务连接的名称。
我使用了以下管道:
pool:
name: Hosted Ubuntu 1604
variables:
azureContainerRegistry: <ACRName>.azurecr.io
azureSubscriptionEndpoint: <SubscriptionName> (<SubscriptionID>)
steps:
- task: DockerCompose@0
displayName: Container registry login
inputs:
containerregistrytype: Azure Container Registry
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: $(azureContainerRegistry)
- task: DockerCompose@0
inputs:
containerregistrytype: 'Azure Container Registry'
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: '{"loginServer":"<ACRName>.azurecr.io", "id" : "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/Microsoft.ContainerRegistry/registries/<ACRName>"}'
dockerComposeFile: '<Path>/docker-compose.yml'
action: 'Build services'
- task: DockerCompose@0
inputs:
containerregistrytype: 'Azure Container Registry'
azureSubscriptionEndpoint: $(azureSubscriptionEndpoint)
azureContainerRegistry: '{"loginServer":"<ACRName>.azurecr.io", "id" : "/subscriptions/<SubscriptionID>/resourceGroups/<ResourceGroup>/providers/Microsoft.ContainerRegistry/registries/<ACRName>"}'
dockerComposeFile: '<Path>/docker-compose.yml'
action: 'Push services'
- task: CopyFiles@2
displayName: "Copy Files to: $(Build.ArtifactStagingDirectory)"
inputs:
SourceFolder: <Path>
Contents: '**\docker-compose.yml'
TargetFolder: "$(Build.ArtifactStagingDirectory)"
- task: PublishBuildArtifacts@1
displayName: "Publish Artifact: drop"
但是,我在管道中收到以下错误:
##[error]Input required: dockerComposeCommand
对于第一个任务(容器注册表登录)。
我哪里错了?
我想您不需要构建中的登录步骤,docker 任务使用 azure 订阅端点处理身份验证,如果它是预先配置的,如果没有 - 给您的服务主体权限来 acrpush。
您误解了文档。 您不需要单独的登录步骤,您必须在您使用的每个 DockerCompose 任务上指定登录信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.