使用mvn spring-boot:build-image构建Docker镜像时报No digest found错误
解决方案
- 检查网络与镜像源配置
该报错多数由无法正常拉取插件默认使用的paketo构建器镜像导致,先为Docker配置国内公共镜像加速器,再重新执行mvn spring-boot:build-image命令即可。 - 升级Spring Boot Maven插件版本
2.4.5版本的spring-boot-maven-plugin存在已知的镜像digest校验bug,将插件升级到同大版本的最新稳定版即可修复,可选2.4.13,也可选择升级到2.7.x、3.x等长期支持版本,配置示例:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.13</version> <executions> <execution> <goals> <goal>build-image</goal> </goals> </execution> </executions> </plugin>
- 手动指定构建器镜像
网络正常仍报错的话,可在插件配置中手动指定稳定的构建器镜像,跳过插件默认拉取的不可用镜像,配置示例:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.5</version> <configuration> <builder>paketobuildpacks/builder:base</builder> <runImage>paketobuildpacks/run:base-cnb</runImage> </configuration> </plugin>
- 清理本地异常缓存
本地缓存了不完整的构建器镜像也会触发digest校验失败,执行docker rmi $(docker images | grep paketobuildpacks | awk '{print $3}')删除所有相关缓存镜像,或执行docker system prune -a清理所有无用镜像后重试即可。
内容的提问来源于stack exchange,提问作者Vishal
相关产品推荐
相关产品推荐

