使用kaniko构建镜像后docker history显示创建时间为292年前如何解决?
问题原因及修复方案
显示292年前创建的问题
这是kaniko默认开启可重现构建特性导致的:该特性会强制把所有镜像层的创建时间设为Unix时间戳0(1970-01-01 00:00:00 UTC),保证相同输入构建出的镜像哈希完全一致,不受构建时间影响。你看到的292年属于时间戳换算的显示误差,本质是该默认配置导致的。
要恢复正常构建时间显示,执行kaniko时添加参数 --reproducible=false 即可。
历史记录出现<missing>层的问题
这是因为kaniko默认构建时不会保留父镜像层的元数据记录,仅保留本次构建生成的层的完整元数据。如果需要完整展示所有层的信息,执行kaniko时额外添加两个参数即可:
--use-new-run:优化RUN指令的元数据记录逻辑--preserve-history=true:将父镜像的所有层历史记录写入新镜像的配置中
如果需要同时解决两个问题,最终执行命令参考如下:
/kaniko/executor --reproducible=false --use-new-run --preserve-history=true <你的其余构建参数>
内容的提问来源于stack exchange,提问作者user5479362
相关产品推荐
相关产品推荐

