26

             首页新闻博问专区闪存班级                                                  我的博客我的园子账号设置退出登录注册登录风平浪静如码 博客园首页新随笔联系订阅管理随笔 -  24  文章 -  0  评论 -  5SpringBoot 构建 Docker 镜像的最佳 3 种方式     本文将介绍3种技术,通过 Maven 把 SpringBoot 应用构建成 Docker 镜像。(1)使用 spring-boot-maven-plugin 内置的 build-image.(2)使用 Google 的 jib-maven-plugin。(3)使用 dockerfle-maven-plugin。Spring Boot 应用为了方便实践,需要一个 Spring Boot 项目。Demo 项目地址:https://github.com/davelms/medium-articles/tree/master/spring-maven-docker项目环境:Java 11Maven 3.6.3使用 mvn package 可以正常构建 jar 包。也可以正常运行:java -jar target/demo-application-0.0.1-SNAPSHOT.jar

测试页面:http://localhost:8080/helloDemo 项目 OK 了,下面就开始实践构建镜像的3个方法。一、Spring Boot maven 插件 的 build-imageSpring Boot 预装了自己的用于构建 Docker 镜像的插件,我们无需进行任何更改,因为它就在 pom.xml 中的 spring-boot-starter-parent。你不需要写 Dockerfile,也不用操别的心,plugin 都帮你做了,例如 Spring 建议的安全、内存、性能等问题。只需要简单的执行:mvn spring-boot:build-image
执行完成后会看到成功提示信息:运行容器测试:docker run -p 9090:8080 -t demo-application:0.0.1-SNAPSHOT
注意:这里映射的本机端口是9090。二、jib-maven-pluginJib 是一个 Maven 和 Gradle 插件,用来创建 Docker 镜像。这个插件有一个非常明显的特点:不需要本地安装 Docker,这对持续集成是非常方便的,Jib 可以直接推送到指定的 Docker 仓库。Jib 同样也不需要写 Dockerfile。使用起来也非常方便,不需要改代码,也可以不改动 pom.xml。只需要执行:mvn compile com.google.cloud.tools:jib-maven-plugin:2.3.0:dockerBuild
mvn compile是我们很熟悉的 maven 编译指令。com.google.cloud.tools:jib-maven-plugin:2.3.0指定了使用 Jib 插件dockerBuild是 Jib 插件的执行目标,dockerBuild 指定了 Jib 使用我们本地安装的 Docker。执行完成后会看到成功提示信息:启动容器测试:docker run -p 9091:8080 -t demo-application:0.0.1-SNAPSHOT
注意:这里映射的本机端口是9091。三、dockerfile-maven-plugin这个插件就需要我们写 Dockerfile 了,Domo 项目中已经准备好了。Dockerfile 需要放在项目的根目录下,和 pom.xml 在一起。然后,需要在 pom.xml 中添加一些配置,以便指定仓库、tag 标签,还有上面 Dockerfile 中定义的 JAR_FILE。执行 mvn package 时就会自动构建镜像了,执行完成后就会看到提示信息:运行容器:docker run -p 9092:8080 -t demo-application:0.0.1-SNAPSHOT
注意:映射的本机端口是 9092。小结这3个里面最方便的是 SpringBoot 原生的方式,什么都不需要自己做,直接就能用。最有特点的是 Jib,不需要你本地安装 Docker,可以直接推送到指定的仓库,而且使用起来也很简单。看起来最麻烦的就是 dockerfile-maven-plugin 这个插件了,需要写 Dockerfile,还得添加配置,但是,实际上他是最好用的,因为前2个与网络环境有关系(你懂的),即使你配置了 Docker 镜像,也会报错,你可以试一下。写在最后欢迎大家关注我的公众号【风平浪静如码】,海量Java相关文章,学习资料都会在里面更新,整理的资料也会放在里面。觉得写的还不错的就点个赞,加个关注呗!点关注,不迷路,持续更新!!!5好文要顶 关注我 收藏该文 风平浪静如码
关注 - 0
粉丝 - 1 +加关注 3 0

« 上一篇: 快速了解阿里微服务热门开源分布式事务框架——Seata posted @ 2020-11-17 15:40  风平浪静如码  阅读(0)  评论(1)  编辑  收藏

评论列表    #1楼 47431842020/11/17 下午4:54:242020-11-17 16:54 小成时光 jib 支持(0) 反对(0) https://pic.cnblogs.com/face/156263/20141231103510.png

刷新评论刷新页面返回顶部 登录后才能发表评论,立即 登录 或 注册, 访问 网站首页。 首页 新闻 博问 专区 闪存 班级 【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】博客园 & 陌上花开HIMMR 给单身的程序员小哥哥助力脱单啦~
【推荐】了不起的开发者,挡不住的华为,园子里的品牌专区
【推荐】未知数的距离,毫秒间的传递,声网与你实时互动
【福利】AWS携手博客园为开发者送免费套餐与抵扣券
【推荐】 阿里云折扣价格返场,错过再等一年
相关博文:
· springboot与docker
· Docker入门-docker运行springboot应用(二)
· docker打包,运行springboot
· docker-compose部署springboot项目
· docker部署springboot应用
» 更多推荐…最新 IT 新闻:
· iPhone 12:比绿更绿
· 负债90亿、万人维权,“蛋壳公寓”会成为下一个ofo吗?
· 谷歌微软腾讯网易吹起的云游戏风口,又一个旧金山卖水人的故事
· 微软新提案:让Windows端Chrome/Edge支持计量连接模式
· 百度财报电话会议实录:直播将成为百度变现的一个很好渠道
» 更多新闻…

公告 昵称: 风平浪静如码
园龄: 1个月
粉丝: 1
关注: 0 +加关注

< 2020年11月> 日一二三四五六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 1 2 3 4 5 6 7 8 9 10 11 12

搜索    常用链接 我的随笔我的评论我的参与最新评论我的标签 随笔档案 2020年11月(10) 2020年10月(14) 最新评论1. Re:SpringBoot 构建 Docker 镜像的最佳 3 种方式jib
–小成时光2. Re:三分钟快速解析GraphQL基本工作思路!和发布订阅模式的消息队列有异曲同工之妙,都是不要搞什么相互迁就,这么迁就是没有头的,大家统一对接功能完备的第三方系统。
–coredx3. Re:面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景写的很不错,点赞,但是如果有一些真实的案例的话就比较完美了,哈哈
–做自己-jason4. Re:1024程序员节:向改变世界的程序员致敬快乐是快乐,就是头冷……
–枫木根5. Re:1024程序员节:向改变世界的程序员致敬@做自己-jason 节日快乐,我的朋友…–Gy-L阅读排行榜 1. 快速了解阿里微服务热门开源分布式事务框架——Seata(428) 2. 1024程序员节:向改变世界的程序员致敬(366) 3. 一万四千字分布式事务原理解析,全部掌握你还怕面试被问?(265) 4. 三分钟快速解析GraphQL基本工作思路!(263) 5. 震惊!你还不知道SpringBoot真正的启动引导类(223) 评论排行榜 1. 1024程序员节:向改变世界的程序员致敬(3) 2. 三分钟快速解析GraphQL基本工作思路!(1) 3. 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景(1) 推荐排行榜 1. 1024程序员节:向改变世界的程序员致敬(4) 2. 一万四千字分布式事务原理解析,全部掌握你还怕面试被问?(2) 3. 三分钟快速解析GraphQL基本工作思路!(1) 4. 面试官问我:创建线程有几种方式?我笑了(1) 5. 面试官:你说说互斥锁、自旋锁、读写锁、悲观锁、乐观锁的应用场景(1)

Copyright © 2020 风平浪静如码
Powered by .NET Core on Kubernetes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值