SBT依赖关系的Docker数据卷

use*_*128 4 scala sbt thoughtworks-go docker

我正在使用docker来持续集成Scala项目.在容器内部,我正在构建项目并使用"sbt dist"创建分发.

这需要花费很长时间来拉下所有依赖项,我想使用这里提到的docker数据卷:http://docs.docker.io/en/latest/use/working_with_volumes/

但是,我不明白如何让SBT将jar文件放入卷中,或者SBT如何知道如何从该卷读取它们.

om-*_*nom 11

SBT使用常春藤来解决项目依赖性.Ivy在本地缓存下载的工件,每次被要求拉取东西时,它首先进入缓存,如果没有找到从远程下载的东西.默认情况下,缓存位于~/.ivy2,但它实际上是一个可配置的属性.所以只需安装卷,将常春藤指向它(或以默认位置安装它)并享受缓存.


Kaj*_*nus 8

不确定这在集成服务器上是否有意义,但在localhost上进行开发时,我将主机.ivy2/.sbt/目录映射到容器中的卷,如下所示:

docker run ...  -v ~/.ivy2:/root/.ivy2  -v ~/.sbt:/root/.sbt  ...
Run Code Online (Sandbox Code Playgroud)

(显然,在容器内部,.ivy2/.sbt/放置在/root/,因为我们登录到容器作为根用户.)