Docker构建镜像报“invalid diffID for layer xxx”
在某一台服务器加载过后出现这个问题,应该是某一层的镜像盐值不一致导致的。首先先把这个镜像解压出来,找到加载失败的那一层镜像,替换manifest.json里的重新生成的镜像id。将之前错误的加密生成的镜像替换最新加密生成的镜像。此时重新打个tag上传harbor可以使用啦。重新用sha256生成新的镜像id。重新生成镜像层sha256。然后重新打包,构建就可以啦。
·
异常信息
在某一台服务器加载过后出现这个问题,应该是某一层的镜像盐值不一致导致的
具体解决
把出现错误的sha256记录一下
sha256:d01a040bd8a04b756bf184076bdeb95ab91a19da3e5803acd2d8f8bd43ce902c
首先先把这个镜像解压出来,找到加载失败的那一层镜像,
重新生成镜像层sha256
将之前错误的加密生成的镜像替换最新加密生成的镜像
sed -i "s/d01a040bd8a04b756bf184076bdeb95ab91a19da3e5803acd2d8f8bd43ce902c/bf49af9d33a667658353b0025d9c3cbfae5f78bd02c834a4f57a8e809fa5a6f8/g" 6c46dffd68d44d6bac77bad58cddb073e56d234535ed00131fffb3ab33a5a69b.json
重新用sha256生成新的镜像id
sha256sum 6c46dffd68d44d6bac77bad58cddb073e56d234535ed00131fffb3ab33a5a69b.json
88ee2ff401d2c6fe395e9cc93b20443550bb028c69df15a4f38a7758884e7244 6c46dffd68d44d6bac77bad58cddb073e56d234535ed00131fffb3ab33a5a69b.json
修改名字
mv 6c46dffd68d44d6bac77bad58cddb073e56d234535ed00131fffb3ab33a5a69b.json 88ee2ff401d2c6fe395e9cc93b20443550bb028c69df15a4f38a7758884e7244.json
替换manifest.json里的重新生成的镜像id
sed -i "s/6c46dffd68d44d6bac77bad58cddb073e56d234535ed00131fffb3ab33a5a69b/88ee2ff401d2c6fe395e9cc93b20443550bb028c69df15a4f38a7758884e7244/g" manifest.json
然后重新打包,构建就可以啦
此时重新打个tag上传harbor可以使用啦
更多推荐
已为社区贡献2条内容
所有评论(0)