2017-02-28 63 views
3

由于某些要求在某些特定测试环境中运行测试,我们希望构建自定义容器以在Concourse CI上运行测试。使用Dockerfile构建自定义图像以在Concourse CI上进行测试

我们都知道一个工作流程是

Concourse --> Build Image --> Push to Artifactory/Docker Hub --> Pull into pipeline --> run container --> run the tests 

,但我们并没有要求像推到集线器,并宁愿这样

Concourse -- Build Image -- run container -- run the tests 

我已签出了工作流程Pivotal's blogissue,但它解释了第一个工作流程。

我们可以实现第二个工作流程吗?

回答

1

在定义任务时,您可以使用​​选项实现您想要的功能。

image选项这里需要一个rootfs码头工人形象,虽然,这样是您需要提供什么样的。

我知道这可能看起来令人讨厌和违反直觉,但它符合大厅抽象。 Docker镜像是资源,因此它们像所有其他汇合资源一样,需要在大厅外的某些商店中存储和版本化。如果广场发现已经上传了新的图片,Concourse只会下载一张新图片,因此我认为正确的工作流程有点不同。

我会做的是有一份工作,将您需要的所有内容都提供给docker-image-resourceput,并在其中一个资源发生变化时触发。然后在您需要该图像的任务中,从您的码头商店中取出。 Concourse会缓存图像直到它发生变化,所以大部分时间你都不需要使用网络流量。

正如你可以看到大厅团队如何做到这一点的例子... 我们有一个pipeline that builds images使用泊坞窗图像资源,然后我们main pipeline消耗这些图像,并使用缓存版本的绝大多数时间。

+2

嘿感谢您的努力。我正在寻找一个更简单的免费配置,我可以简单地提供Docker文件作为源代替存储库源 – Harshil

+0

Concourse不支持该配置。 –

相关问题