5

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

这需要很长时间才能消除所有依赖项,我想使用此处提到的 docker 数据量:http: //docs.docker.io/en/latest/use/working_with_volumes/

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

4

2 回答 2

12

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

于 2014-02-27T15:06:20.777 回答
9

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

docker run ...  -v ~/.ivy2:/root/.ivy2  -v ~/.sbt:/root/.sbt  ...

(显然,在容器内部,.ivy2/并且.sbt/被放置在 中/root/,因为我们以 root 用户身份登录到容器。)

于 2014-11-30T07:12:10.753 回答