在azure构建管道中,一旦推送,如何从自托管代理清理docker镜像(作为管道的一部分创建)?

var*_*ble 5 azure docker azure-devops azure-pipelines

我正在使用自托管代理来运行我的构建管道。代理机器已下载基础 docker 映像。管道使用第一个任务构建并推送新的 docker 映像(基于基础映像的顶部),如以下屏幕截图所示。

码头任务

一旦构建了映像并将其推送到容器注册表,我希望从自托管代理中清理映像(作为此管道的一部分创建),以避免将来出现磁盘空间问题(应保留基础映像)。是否有 Docker 任务来清理/删除构建的映像?在azure构建管道中,一旦推送后如何从自托管代理中清理docker镜像?

Tia*_*ões 2

这个答案可能会迟到,但它就在这里。

我使用这种流程来清理代理中的图像(以及更多内容):

  - job: DockerCleanBuildAndTest
    displayName: Docker Build and Test
    workspace:
      clean: all
    steps:
      - task: DockerCompose@0
        displayName: Clean
        inputs:
          containerregistrytype: 'Container Registry'
          dockerRegistryEndpoint: ${{ variables['container-registry-name'] }}
          dockerComposeFile: '**/docker-compose.yml'
          action: 'Run a Docker Compose command'
          dockerComposeCommand: down
          detached: false

      - task: DockerCompose@0
        displayName: Run Tests
        inputs:
          containerregistrytype: 'Container Registry'
          dockerRegistryEndpoint: ${{ variables['container-registry-name'] }}
          dockerComposeFile: '**/docker-compose.yml'
          action: 'Run a Docker Compose command'
          dockerComposeCommand: 'run all-tests'
          detached: false
Run Code Online (Sandbox Code Playgroud)

也许在你的情况下它会是这样的:

- job: DockerCleanBuildAndTest
    displayName: Docker Build and Test
    workspace:
      clean: all
    steps:
      - task: DockerCompose@0
        displayName: Clean
        inputs:
          containerregistrytype: 'Container Registry'
          dockerRegistryEndpoint: ${{ variables['container-registry-name'] }}
          dockerComposeFile: '**/docker-compose.yml'
          action: 'Run a Docker Compose command'
          dockerComposeCommand: rm     #  <---
          detached: false

      - task: DockerCompose@0
        displayName: Run Tests
        inputs:
          containerregistrytype: 'Container Registry'
          dockerRegistryEndpoint: ${{ variables['container-registry-name'] }}
          dockerComposeFile: '**/docker-compose.yml'
          action: 'Run a Docker Compose command'
          dockerComposeCommand: 'run all-tests'
          detached: false
Run Code Online (Sandbox Code Playgroud)

参考:https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/build/docker-compose ?view=azure-devops