如何与 docker 容器共享 gradle 缓存

Fra*_*ung 6 gradle docker

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

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

我已经设置了 gradle-4.0 的 http 构建缓存。在大多数情况下,这避免了 java 编译的需要。性能增益虽然很低,因为构建时间主要由下载依赖项决定gradlew --parallel有助于稍微缓解这种情况,但要真正促进构建,应完全避免下载。

将 ~/.gradle 共享为 docker 卷是有问题的,因为它会在容器并行运行时引起争用(https://github.com/gradle/gradle/issues/851)。

那么,还可以做些什么来避免一遍又一遍地下载相同的工件?

zig*_*arn 0

您可以构建一个包含缓存的 docker 镜像,然后使用该镜像来运行构建的容器。