如何与docker容器共享gradle缓存

时间:2017-07-07 10:58:38

标签: docker gradle

我们在docker容器中运行gradle构建(原因是构建需要我们不想在主机上安装的软件;节点,葡萄酒等。甚至主机上都没有安装java或gradle)。

使用空缓存启动每个容器非常烦人。

我已经设置了gradle-4.0的http构建缓存。在大多数情况下,这避免了java编译的需要。性能提升虽然很低,因为构建时间主要是下载依赖性gradlew --parallel帮助减轻了一点,但为了真正提升构建,应该完全避免下载。

将〜/ .gradle共享为docker卷是有问题的,因为当容器并行运行时会导致争用(https://github.com/gradle/gradle/issues/851)。

那么,还有什么方法可以避免一遍又一遍地下载相同的工件?

2 个答案:

答案 0 :(得分:1)

虽然从并行运行的容器共享gradle缓存是有问题的,但是当容器按顺序运行时,重复使用gradle缓存是绝对可以的。由jenkins发布的构建顺序运行。

可以通过使用.gradle文件夹的docker卷来加速Jenkins构建。唯一的缺点是,每项工作都需要自己的数量。

答案 1 :(得分:0)

您可以构建包含缓存的docker镜像,然后使用此图像运行构建容器。