我正在使用docker來持續集成Scala項目。在容器內部,我正在構建項目並創建一個「sbt dist」分佈。SBT依賴項的Docker數據量
這需要年齡拉低所有的依賴,我想用一個碼頭工人的數據量作爲這裏所說:http://docs.docker.io/en/latest/use/working_with_volumes/
不過,我不明白我怎麼能拿SBT把jar文件中體積,或SBT如何知道如何從該卷中讀取它們。
我正在使用docker來持續集成Scala項目。在容器內部,我正在構建項目並創建一個「sbt dist」分佈。SBT依賴項的Docker數據量
這需要年齡拉低所有的依賴,我想用一個碼頭工人的數據量作爲這裏所說:http://docs.docker.io/en/latest/use/working_with_volumes/
不過,我不明白我怎麼能拿SBT把jar文件中體積,或SBT如何知道如何從該卷中讀取它們。
SBT使用ivy來解決項目依賴關係。常春藤在本地緩存下載的工件,每次被要求提取某些東西時,它首先進入該緩存,並且如果沒有發現從遠程下載的東西。默認情況下,緩存位於~/.ivy2
,但它實際上是configurable屬性。因此,只需安裝音量,將ivy指向它(或將其安裝在默認位置)並享受緩存。
不知道這使得在集成服務器上的意義,但開發本地主機上時,我映射我的主機的.ivy2/
和.sbt/
目錄冊在容器中,像這樣:
docker run ... -v ~/.ivy2:/root/.ivy2 -v ~/.sbt:/root/.sbt ...
(顯然,在容器內部,.ivy2/
和.sbt/
被放置在/root/
中,因爲我們以root用戶身份登錄容器。)