我们有一个 Azure yaml 管道,配置为从 docker 映像创建容器实例,该管道在 7 月 1 日(昨天)之前运行良好,但是从 7 月 2 日(今天)开始,管道中会抛出以下错误:
错误:(RegistryErrorResponse)从 docker 注册表“docker.io”收到错误响应。请稍后重试。 代码:注册表错误响应 消息:从 docker 注册表“docker.io”收到错误响应。请稍后重试。
这是用于创建容器的
AzureCLI@2
任务:
- task: AzureCLI@2
name: CreateContainer
displayName: Create container
inputs:
azureSubscription: ${{ parameters.subscription }}
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
az container create \
--resource-group '${{ parameters.resourceGroup }}' \
--name '${{ parameters.name }}' \
--image 'docker.io/mockoon/cli:latest' \
--ports ${{ parameters.port }} \
--location '${{ parameters.location }}' \
--dns-name-label '${{ parameters.name }}' \
--command-line "mockoon-cli start --data '$(publicUrl)' --port ${{ parameters.port }}"`
我尝试过使用不同的标签,例如
8.2.0
,8.1.1
,相同的结果
我在这里检查了状态https://www.dockerstatus.com/,它是“所有系统都可运行”
尝试使用 Docker Hub 中的 Docker 映像创建 ACI 时,我会收到相同的错误消息。但是,使用 ACR 中的图像时效果很好。
作为解决方法,您可以尝试使用“
Dev Container Build and Run Task”提供的
DevcontainersCi@0
任务拉取、重新构建图像“mockoon/cli:latest”并将其推送到 ACR扩展名,然后使用 ACR 中的图像创建 ACI。
将 Dev Container Build and Run Task 扩展安装到您的 Azure DevOps 组织。
在管道运行的 git 存储库中,在根目录中添加一个包含以下内容的 json 文件“
.devcontainer/devcontainer.json
”。
{
"image": "docker.io/mockoon/cli:latest"
}
然后如下配置管道。
steps:
- task: Docker@2
displayName: 'Docker Login'
inputs:
containerRegistry: 'Name of the Docker Registry service connection'
command: login
- task: DevcontainersCi@0
displayName: 'Build and Run Dev Container'
inputs:
imageName: yourregistry.azurecr.io/mockoon_cli
imageTag: 'latest'
push: filter
sourceBranchFilterForPush: refs/heads/main
noCache: false
- task: AzureCLI@2
displayName: 'Create ACI'
inputs:
azureSubscription: 'Name of the ARM service connection'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az container create \
-g '${{ parameters.resourceGroup }}' \
-n '${{ parameters.name }}' \
-l '${{ parameters.location }}' \
--ports ${{ parameters.port }} \
--dns-name-label '${{ parameters.name }}' \
--registry-username $(username) \
--registry-password $(password) \
--image 'yourregistry.azurecr.io/mockoon_cli:latest' \
--command-line "mockoon-cli start --data '$(publicUrl)' --port ${{ parameters.port }}"`