登录Azure管道中的Azure容器注册表
我无法按照文档使用任务登录Azure中的容器注册表”DockerCompose@0“ 文件建议使用:登录Azure管道中的Azure容器注册表,azure,docker-compose,azure-pipelines,Azure,Docker Compose,Azure Pipelines,我无法按照文档使用任务登录Azure中的容器注册表”DockerCompose@0“ 文件建议使用: variables: azureContainerRegistry: Contoso.azurecr.io azureSubscriptionEndpoint: Contoso steps: - task: DockerCompose@0 displayName: Container registry login inputs: containerregistrytype
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任务上指定登录信息 我猜答案是一样的,不是吗?差不多-在你正确之前没有看到你的答案。我确实怀疑这一点,但我在构建和推送的第二和第三个任务操作中对容器注册表(azureContainerRegistry)的引用并没有按预期工作。所以我把它改成了.azurecr.io,现在一切正常。非常感谢。