多次构建的 Docker 镜像, WORKDIR XXX 这个指令生成的 Layer 的 Hash 都不太相同? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
evax
V2EX    Docker

多次构建的 Docker 镜像, WORKDIR XXX 这个指令生成的 Layer 的 Hash 都不太相同?

  •  
  •   evax 2024-03-06 11:27:31 +08:00 1016 次点击
    这是一个创建于 583 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用云效流水线构建

    使用多阶段构建,dockerfile 大概为:

    # stage1 from xxx as builder yarn build # stage2 from node workdir xxx copy --from=builder xxxx xxx 

    通过对比生成的镜像层信息,发现每次 stage2 的 workdir 这个指令的 hash 都不同,有点难以理解。 如果这个指令每次不同,就会造成后面 layer hash 变化,推送镜像时就无法利用 layer 缓存,每次都要全部推送?

    8 条回复    2024-03-08 15:25:23 +08:00
    night98
        1
    night98  
       2024-03-06 16:20:06 +08:00
    云效的老 bug 了,几年前都提过,是 docker 提供的 buildkit 的问题,原因是在 linux 下 git 会刷新文件的时间导致 hash 不一致(纯记忆,大概是这么个意思)
    就导致了多层构建,每次都得从头推
    evax
        2
    evax  
    OP
       2024-03-06 21:08:42 +08:00
    @night98 亏我还费老多心思去优化各个 layer 尽量缓存,这看起来没法玩了呀
    night98
        3
    night98  
       2024-03-07 22:13:22 +08:00
    @evax #2 云效构建好像可以用自己的机器去当节点弄,这么搞应该是可以走缓存的,你如果直接用他提供的流水线功能,那就只能慢慢等了
    night98
        4
    night98  
       2024-03-07 22:14:05 +08:00
    主要云效感觉他们内部压根不是很上心,各种东西都是做了但是没做好,就完成个 7-80 的那样子
    evax
        5
    evax  
    OP
       2024-03-08 13:14:56 +08:00
    @night98 是用的自己的构建节点,所以才很奇怪。
    night98
        6
    night98  
       2024-03-08 15:24:19 +08:00
    @evax #5 用自己的节点然后不要用他那套构建流程试试,我的意思是你用自己的构建节点然后自己写 shell 去构建,这样应该是正常的
    night98
        7
    night98  
       2024-03-08 15:24:53 +08:00
    @evax #5 他那套构建流程如果你直接用你的机器当节点的话,我记得应该是拉了几个镜像过来然后跑构建
    night98
        8
    night98  
       2024-03-08 15:25:23 +08:00
    @evax #5 实际应该还是用的 docker buildkit 那套,还是会出问题,所以只能直接执行 shell 去搞
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2971 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 13:32 PVG 21:32 LAX 06:32 JFK 09:32
    Do have faith in what you're doing.
    ubao 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