Jenkins通过podTemplate,在每次构建时启动容器化构建环境,构建完成后销毁。这导致gradle daemons守护进程不会持续运行,即使我将.gradle目录持久化在宿主机上,重新启动的容器也无法利用其中的daemon。下面是我在网络上找到的关于这个问题的描述:
If you run CI builds in ephemeral environments (such as containers) that do not reuse any processes, use of the Daemon will slightly decrease performance (due to caching additional information) for no benefit, and may be disabled.
大概意思就是,在短暂保留的CI环境下,使用守护进程反而会让构建变慢。
直接禁用可以快一点,但和充分利用守护进程相比,聊胜于无。
我想问的是,有没有什么方法可以在容器化构建环境下利用gradle daemon?
如果动态创建构建环境不行,那么通过配置podTemplate,可否将某个构建环境容器持久的保留下来,每个ci节点一个,重复利用?
希望有这方面经验的大神指点一二,谢谢。