Har*_*hil 6 continuous-integration dockerfile concourse
由于在某些特定测试环境中运行测试的某些要求,我们希望构建一个自定义容器来在 Concourse CI 上运行测试。
我们知道一个工作流程是
Concourse --> Build Image --> Push to Artifactory/Docker Hub --> Pull into pipeline --> run container --> run the tests
Run Code Online (Sandbox Code Playgroud)
但是我们不需要将图像推送到 Hub,而是更喜欢这样的工作流程
Concourse -- Build Image -- run container -- run the tests
Run Code Online (Sandbox Code Playgroud)
我们可以实现第二个工作流程吗?
您可以在定义任务时使用图像选项来实现您想要的效果。
不过,此处的选项image需要一个rootfs而不是docker 映像,因此您需要提供该映像。
我知道这可能看起来很烦人和违反直觉,但它符合广场抽象。Docker 镜像是资源,因此它们与所有其他大厅资源一样,需要在大厅外的某个存储上存储和版本控制。然而,如果 Concourse 发现已上传较新的图像,它只会下载新图像,因此我认为正确的工作流程有点不同。
我要做的就是有一项工作,可以将您需要的所有内容提供给docker-image-resource put,并在其中一个资源发生变化时触发。然后在需要图像的任务中,从 Docker 存储中提取图像。Concourse 会缓存图像直到它发生变化,因此大多数时候您不需要耗尽网络流量。
作为示例,您可以看到 Concourse 团队是如何做到这一点的...我们有一个使用 docker-image-resource构建图像的管道,然后我们的主管道使用这些图像,并在绝大多数时间使用缓存版本。
| 归档时间: |
|
| 查看次数: |
1197 次 |
| 最近记录: |