Azure DevOps 本地缓存容器作业

Azure DevOps locally cached container job

我正在尝试 运行 container job 运行 在本地构建和缓存的 Docker 图像(来自 Docker 文件)中从注册表中提取图像。根据我目前的测试,代理只尝试从注册表中提取图像,而不是在本地搜索图像。我知道没有记录此功能,但我想知道是否有办法让它发挥作用。

stages:
- stage: Build 
  jobs:
  - job: Docker
    steps:
    - script: |
        docker build -t builder:0.1 .
      displayName: 'Build Docker'
  
  - job: GCC
    dependsOn: Build
    container: builder:0.1
    steps:
    - script: |
        cd src
        make
      displayName: 'Run GCC'

恐怕暂时没有找到本地缓存图像和运行容器作业的方法。

来自the documentation你提到:

Containers can be hosted on registries other than Docker Hub. To host an image on Azure Container Registry or another private container registry

如果您在 YAML 文件中定义容器,它会默认从 docker 中心提取图像。

或者您可以添加端点字段以指定其他注册表(例如 Azure Container Registry)。

容器的定义如下:

container:
  image: string  # container image name
  options: string  # arguments to pass to container at startup
  endpoint: string  # endpoint for a private container registry
  env: { string: string }  # list of environment variables to add

这意味着容器作业将直接从注册表中提取镜像,无法搜索本地缓存。

但这个要求很有价值。

您可以在 our UserVoice site 上添加对此功能的请求,这是我们提供产品建议的主要论坛。