基于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
扫码关注有惊喜!
「其他文章」
- 如何基于Security框架兼容多套用户密码加密方式
- 基于Kubernetes(k8s)部署Dubbo Nacos服务
- 基于jib-maven-plugin快速构建微服务docker镜像
- 基于minikube快速搭建单节点环境
- 隐私计算FATE-多分类神经网络算法测试
- 隐私计算FATE-离线预测
- 隐私计算FATE-模型训练
- 隐私计算FATE-核心概念与单机部署
- Hyperledger Fabric 核心概念
- Hyperledger Fabric 2.x Java区块链应用
- Hyperledger Fabric 2.x 自定义智能合约
- Hyperledger Fabric 2.x 环境搭建
- Spring Boot 如何热加载jar实现动态插件?
- 如何基于Security实现OIDC单点登录?
- 第三方API对接如何设计接口认证?
- 免费正版 IntelliJ IDEA license 详细指南
- ClickHouse性能优化?试试物化视图
- 全量同步Elasticsearch方案之Canal
- Canal高可用架构部署
- 大数据量查询容易OOM?试试MySQL流式查询