我使用的是Jenkins with Kubernetes plugin,但我认为Tekton或任何使用Kubernetes的and和Gradle构建、测试和部署项目的管道都会遇到同样的问题。
有没有办法通过多个pod共享Gradle守护进程?
请注意,我启用了远程Gradle缓存。
发布于 2020-03-11 16:05:46
这可不容易。Kubernetes插件的整个模型是每个构建都运行在一个新的环境中。您必须在构建之外运行它,可能是通过打开hostNetwork模式的DaemonSet,然后在构建中配置Gradle以查看不同的IP (主机IP),而不是本地主机。
基本上每个人都只需要处理--no-daemon模式:-/
发布于 2020-03-11 19:20:39
如果我的理解是正确的,那么您已经启用了gradle缓存。当您运行并行Jenkins构建管道时,它会失败,因为第一个gradle守护进程会在文件上创建锁。如果是这种情况,作为一种变通办法,您可以在Kubernetes pod模板中为每个gradle构建作业定义主机路径卷,并在执行gradle构建时传递用于gradle缓存的特定路径。
https://stackoverflow.com/questions/60631450
复制相似问题