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

时间:2020-05-05 04:55:44

标签: azure docker azure-devops azure-pipelines

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

docker tasks

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

1 个答案:

答案 0 :(得分:0)

这个答案可能会迟到,但它已经过去了。

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

  - 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

也许你的情况是这样的:

- 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

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