You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot应用Docker镜像过大,321MB镜像层排查及瘦身方案求助

321MB镜像层产生原因

该321MB层是你所使用的adoptopenjdk/openjdk11:latest基础镜像的内置层,是官方构建该基础镜像时,下载、解压并安装完整JDK 11产生的文件体积。结合基础镜像自带的Debian系统底层、系统依赖包,整个基础镜像本身就达到了437MB,叠加你自己的78MB Spring Boot Jar包,总镜像体积刚好为515MB,属于正常叠加结果,并非你编写的Dockerfile打包阶段生成的冗余层。

可行的镜像体积缩减方案
  • 替换精简JRE基础镜像:运行Spring Boot应用只需要JRE环境,不需要完整JDK,你可以直接将基础镜像替换为eclipse-temurin:11-jre-alpine这类基于Alpine系统的精简JRE镜像,基础镜像体积可以降到50MB以内,最终整体镜像体积可以控制在130MB左右。
  • 采用多阶段构建裁剪:如果需要从源码开始构建镜像,可以第一阶段使用完整JDK镜像完成编译打包,第二阶段仅拷贝构建好的Jar包和必要运行环境,避免把构建阶段的工具、源码、临时文件带进最终镜像。
  • JRE自定义裁剪:Java 9及以上版本支持jlink工具,可以根据你的应用实际使用的JDK模块,自定义生成裁剪版JRE,裁剪后的JRE体积通常只有10-30MB,配合空白Alpine基础镜像,最终整个应用镜像可以控制在100MB以内。
  • Spring Boot Jar分层构建:可以将78MB的Jar包拆分为第三方依赖、静态资源、应用类文件独立分层,后续迭代时仅需要上传变更的应用类文件层,不需要重复传输体积较大的依赖层,大幅降低镜像分发的体积开销。

内容的提问来源于stack exchange,提问作者harshit2811

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:09:00