docker springboot项目镜像优化

遇到的问题:
公司java项目按老的方式打包出来一个fat jar,100MB, 推送到腾讯云镜像仓库很慢,8分钟。。。走的是公网,专线暂时还没配置好
以前是内网harbor,速度还不明显。
归根究底,一次推送100MB是个不合理的事情

思路:

  1. 了解spring boot打包,期望将依赖的libs 和 业务代码拆分
  2. 优化dockerfile,充分利用缓存

 

解决问题:

  1. 先修改spring-boot-maven-plugin,只打包业务代码。网上有些是配置exclude,我试了,恶心到了。。那么多包挨个找

 

  1. 新增maven-dependency-plugin,将依赖移到libs目录下

 

  1. 优化dockerfile
    参考 https://medium.com/@nieldw/caching-maven-dependencies-in-a-docker-build-dca6ca7ad612 ,牛逼

 

搞定。最终代码变化每次推送也就1MB多
启动命令 java -Dloader.path="libs/" -jar app.jar

作者:小猋_a8f1
链接:https://www.jianshu.com/p/32456eea0488
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。