2017-02-28 67 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不支持該配置。 –

相關問題