基于jib-maven-plugin快速构建微服务docker镜像
一、说明
本文介绍基于 Maven
插件 jib-maven-plugin
实现快速构建 Spring Boot
程序镜像,并推送到远程仓库中,且 无需安装 Docker
环境 。
Jib 是 Google 开发的一个无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践的情况下,为 Java 应用程序构建 Docker 和 OCI 镜像,以 Maven 和 Gradle 插件形式提供。
二、插件使用
下图为插件的配置样例,构建后的镜像发布到阿里云仓库中(免费):
阿里云仓库配置以及用户名密码需要按照自己注册的信息进行修改
插件详细的配置可查看: https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
配置中增加了 execution
进行触发,当 Maven
执行 package
命令时会自动构建并发布镜像:
登录阿里云容器镜像服务,即可查看我们发布的镜像:
三、总结
对于 Java
程序来说使用 jib-maven-plugin
插件来构建镜像还是非常方便的。
与传统的 dockerfile
构建镜像的方式对比:
docker环境
- Jib:无需
- dockerfile:需要
dockerfile文件
- Jib:无需
- dockerfile:需要
构建复杂度
- Jib:很方便
- dockerfile:较复杂
灵活度
- Jib:相对较高
- dockerfile:高
PS:怎样通过 Jib
在构建镜像的时候实现 dockerfile
中的类似 RUN
之类的命令,如安装一个程序运行时所需要的字体?
答:不支持,但是解决方式也很简单,只需先基于 dockerfile
这种方式构建一个安装好所需字体的基础镜像,然后在 Jib
中通过 from
依赖这个镜像来构建微服务的镜像即可。
四、样例工程
集成 jib-maven-plugin
插件的样例 Spring Boot
工程:
- https://gitee.com/zlt2000_admin/zlt-dubbo-samples/tree/master/dubbo-nacos
- https://github.com/zlt2000/zlt-dubbo-samples/tree/master/dubbo-nacos
扫码关注有惊喜!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
定了!Python3.7,今年停止更新!
大家好,这里是程序员晚枫。 今天给大家分享一个来自Python官网的重要消息:Python3.7马上就要停止维护了,请不要使用了! 官网链接:https://devguide.python.org/versions/ 停更的后果是什么? 周末翻阅Python官网,发现了Python3.7马上就要停更的信息,为什么要分享给大家呢? 最直接的作用:从现在开始,不建议大家继续使用3.7版本了 为什么?说2个最重要的: 站在小白的角度:大量的第三方库,将不再支持3.7,会使你下载失败,非常影响你的学习。比如我们的自动化办公专用库,python-office,目前只支持3.8~3.10。 站在专业开发的角度:未来3.7版本出现安全漏洞,也不会受到修复,给本来就脆弱的Python系统,增加了更多的不确定性。 应该用哪个版本呢? 那日常工作和学习,应该使用哪个版本呢? 下面这个图片,是目前各个版本的更新时间线:👇 整理出来是这样的表格,👇 从图中可以看出来,2023年的当下: 3.8~3.9,都是正常迭代和维护的security版本(安全),可以正常使用。下载链接:点我直达 3.10~3.11,...
- 下一篇
微服务拆分治理最佳实践
作者:京东零售 徐强 黄威 张均杰 背景 部门中维护了一个老系统,功能都耦合在一个单体应用中(300+接口),表也放在同一个库中(200+表),导致系统存在很多风险和缺陷。经常出现问题:如数据库的单点、性能问题,应用的扩展受限,复杂性高等问题。 从下图可见。各业务相互耦合无明确边界,调用关系错综复杂。 随着业务快速发展,各种问题越来越明显,急需对系统进行微服务改造优化。经过思考,整体改造将分为三个阶段进行: 数据库拆分:数据库按照业务垂直拆分。 应用拆分:应用按照业务垂直拆分。 数据访问权限收口:数据权限按照各自业务领域,归属到各自的应用,应用与数据库一对一,禁止交叉访问。 数据库拆分 单体数据库的痛点:未进行业务隔离,一个慢SQL易导致系统整体出现问题;吞吐量高,读写压力大,性能下降; 数据库改造 根据业务划分,我们计划将数据库拆分为9个业务库。数据同步方式采用主从复制的方式,并且通过binlog过滤将对应的表和数据同步到对应的新数据库中。 代码改造方案 如果一个接口中操作了多张表,之前这些表属于同一个库,数据库拆分后可能会分属于不同的库。所以需要针对代码进行相应的改造。 目前存在问...
相关文章
文章评论
共有0条评论来说两句吧...