大佬们,用 k8s+Jenkins 去构建 Android 的话 gradle 缓存怎么搞? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mio4kon
V2EX    Kubernetes

大佬们,用 k8s+Jenkins 去构建 Android 的话 gradle 缓存怎么搞?

  •  
  •   mio4kon 2021-07-30 20:02:30 +08:00 via iPhone 2928 次点击
    这是一个创建于 1564 天前的主题,其中的信息可能已经所发展或是发生改变。
    现在是 gradle home 的缓存放在 nfs 服务器上,然后 pod 挂载 gradle 缓存的 pvc,但是多个 pod 并行执行的话会有文件锁直接导致报错。

    现在的想法是每次构建前把 nfs 的缓存目录 copy 到 pod 的 gradle home,但是 gradle home 太大了( 15g 左右),本机 cp 都要几分钟,影响构建时间,而且如何更新 gradle home 的内容也很麻烦

    大佬们有没有好的解决方案?
    14 条回复    2021-11-12 12:54:51 +08:00
    uyZL3221XZ2xGZ3D
        1
    uyZL3221XZ2xGZ3D  
       2021-07-30 20:10:25 +08:00
    如果非上 k8s,固定节点加 local 存储更合适吧
    kwanzaa
        2
    kwanzaa  
       2021-07-30 20:12:57 +08:00
    文件变动之后 resync?
    mio4kon
        3
    mio4kon  
    OP
       2021-07-30 20:15:43 +08:00 via iPhone
    @tanhui2333 是的,如果没有好的方案只能固定节点数量了,不过每次构建可能就不是干净的容器了,构建脚本我们现在是暴露出去的,担心其他人乱改影响稳定性
    mio4kon
        4
    mio4kon  
    OP
       2021-07-30 20:23:02 +08:00 via iPhone
    @kwanzaa 相当于容器构建完了不能销毁,然后一直同步 gradle 缓存?
    kwanzaa
        5
    kwanzaa  
       2021-07-30 23:25:24 +08:00
    @mio4kon 也可以将目录挂载到容器里面
    Mystery0
        6
    Mystery0  
       2021-07-31 00:01:14 +08:00 via Android
    一个项目一个缓存目录?
    sampeng
        7
    sampeng  
       2021-07-31 00:56:12 +08:00
    java 项目。。而且你都 k8s+jenkins 了。说明有足够机器。你不内网做个仓库么?
    内网有 gradle 仓库,完全不需要缓存。
    gradle 缓存在 k8s+jenkins 方案里有各种奇怪的问题出现。比较折腾。
    本来编译就慢,3 分钟和 3 分钟 30 秒。没什么太大感觉上的差异。。而且不用折腾。很舒服。。
    sampeng
        8
    sampeng  
       2021-07-31 00:58:23 +08:00
    另外也不需要 copy 。gradle 有参数指定缓存目录。我第一个方案就是这样。但是不定期死锁。不要问我为什么。。。。用了半年我觉得有点崩溃。换一个。pod 不销毁。jenkins 的那个 pod 居然有大小限制。。多了就 disk full 。。。跑了 3 个月。。放弃。
    现在这个方案最舒服。用完就销毁。啥都不耽误。半年没管过他。就老老实实打包就好了
    xuanbg
        9
    xuanbg  
       2021-07-31 07:26:20 +08:00
    私有仓库+私服就解决问题了。从私服拉依赖构建,构建完镜像 push 到私有仓库。至于你 k8s 怎么用私有仓库的镜像,就随意了。
    mio4kon
        10
    mio4kon  
    OP
       2021-07-31 11:18:29 +08:00 via iPhone
    @sampeng 是的,我现在用的就是参数指定目录,不过指定的是共享目录,所以会有死锁,你说的 gradle 仓库是指 maven center 吗?但是有些外网的依赖,虽然都换成阿里云镜像地址了,不过还是很慢
    mio4kon
        11
    mio4kon  
    OP
       2021-07-31 11:21:19 +08:00 via iPhone
    @xuanbg 是指每次构建完把容器重新打包上传个新镜像,然后每次构建拉新版本的镜像是吗
    wdlth
        12
    wdlth  
       2021-07-31 19:11:54 +08:00
    内网没有搭建 Nexus 镜像么?
    sampeng
        13
    sampeng  
       2021-08-02 08:39:42 +08:00
    @mio4kon Nexus 或者 jfrog 做内网镜像。非常快
    mogging
        14
    mogging  
       2021-11-12 12:54:51 +08:00 via Android
    gradlew + nexus + local volume pv 试试看
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1469 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 16:43 PVG 00:43 LAX 08:43 JFK 11:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86