首页 > 解决方案 > 在托管的 Azure 管道中初始化容器作业时出错

问题描述

我想将 skopeo 容器作为容器作业运行。

我在初始化容器步骤中不断收到此错误消息

Error response from daemon: Container 7e741e4aafb30bb89e1dfb830c1cb69fa8d47d219f28cc7b8e57727253632256 is not running

我的管道如下所示:

  - job: publish_branch_image
    pool:
      vmImage: ubuntu-latest
    container: docker.io/ananace/skopeo:latest
    steps:
    - script: |
        # clean branchname for imagename
        export COMMIT_IMAGE="$(Image.TagName)"
        export TARGET_IMAGE="$(Image.Name)":$(echo $(Build.SourceBranch) | sed 's./.-.g')
        echo "Pushing to ${TARGET_IMAGE}"
        skopeo copy docker://${COMMIT_IMAGE} docker://${TARGET_IMAGE} --src-creds="$(Registry.USER):$(Registry.PASSWORD)" --dest-creds="$(Registry.USER):$(Registry.PASSWORD)"
      displayName: publish-branch-release-image

标签: azure-devops

解决方案


根据报错信息,似乎容器没有运行,我们可以运行 cmddocker pull docker.io/ananace/skopeo:latest拉取镜像并通过 运行docker run docker.io/ananace/skopeo:latest,然后就可以使用了。

更新1

感谢 michiel 分享,根据文档端点基于 Linux 的容器

容器可以托管在 Docker Hub 以外的注册表上。若要在 Azure 容器注册表或其他专用容器注册表上托管映像,请将服务连接添加到专用注册表。然后你可以在容器规范中引用它:

container:
  image: xxx/xxx:tag
  endpoint: xxx

推荐阅读