我正在使用自托管代理运行我的构建管道。代理计算机已下载了基本docker映像。管道使用第一个任务构建并推送新的docker映像(基于基础映像的顶部),如以下屏幕截图所示。
一旦构建了映像并将其推送到容器注册表,我希望从自托管代理中清除映像(作为此管道的一部分创建),以避免将来出现磁盘空间问题(基本映像应保留) 。是否有Docker任务来清理/删除构建的映像?在azure构建管道中,一旦推送了自托管代理,如何清除docker镜像?
答案 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