2016-09-23 69 views
2

當前有一個流水線用於構建R中的報告併發布在Jekyll中。我將我的文件保存在github的版本控制下,迄今爲止工作得很好。在版本控制下的Docker鏡像中開發

最近,我開始思考我會如何採取RRubyJekyll和建立,任何我的同事可以在不必都設立了自己的計算機上的包和寶石下載並運行相同的報告碼頭工人的形象。我看着Docker Hub,發現git提交的自動構建是一個非常有趣的功能。

我想要構建一個映像,我可以使用它來運行此配置,並將其保留在版本控制下,並在Docker Hub中保持最新狀態。這樣的工作如何?

如果我只保留當前設置,我可以添加一個dockerfile到我的repo中,Docker Hub將爲我構建我的圖像,我只是覺得在同一圖像上運行我的工作會很有趣。

關於如何管道可能工作的任何想法?

+1

您不會創建一個圖像來包含您的所有組件,而是每個回購(R應用程序,Jekyll站點,Ruby應用程序)一個圖像。您只需在每個github倉庫中添加一個Dockerfile。您可以在客戶端使用docker-compose.yml文件將它們放在一起。適用於Mac或Windows的Docker非常適合您的使用情況。 – Alkaline

回答

1

Docker Hub構建服務應該可以工作(https://docs.docker.com/docker-hub/builds/)。你也可以考慮使用gitlab-ci或travis ci(gitlab對privet項目有用,它還提供了privet docker registry)。

你應該有兩個Dockerfiles,一個具有所有的依賴關係,另一個非常簡約的報告(構建會更快)。例如:

FROM base_image:0.1 
COPY . /reports 
WORKDIR /reports 
RUN replace-with-requiered-jekyll-magic 

上面的Dockerfile應該在您的報告存儲庫中。

在第二個存儲庫中,您可以使用所有工具和nginx或其他東西來爲基本映像創建靜態文件。確保將nginx www-root設置爲/ reports。如果您需要更新工具,只需更新Dockerfile中的base_mage標籤以獲取報告。