基于jib-maven-plugin插件快速构建微服务docker镜像的方法
目录
- 一、说明
- 二、插件使用
- 三、总结
- 四、样例工程
一、说明
本文介绍基于 Maven
插件 jib-maven-plugin
实现快速构建 Spring Boot
程序镜像,并推送到远程仓库中,且 「无需安装」 Docker
环境 。
Jib 是 Google 开发的一个无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践的情况下,为 Java 应用程序构建 Docker 和 OCI 镜像,以 Maven 和 Gradle 插件形式提供。
二、插件使用
下图为插件的配置样例,构建后的镜像发布到阿里云仓库中(免费):
阿里云仓库配置以及用户名密码需要按照自己注册的信息进行修改
注册地址:https://cr.console.aliyun.com/
插件详细的配置可查看:https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
配置中增加了 execution
进行触发,当 Maven
执行 package
命令时会自动构建并发布镜像:
登录阿里云容器镜像服务,即可查看我们发布的镜像:
三、总结
对于 Java
程序来说使用 jib-maven-plugin
插件来构建镜像还是非常方便的。
与传统的 dockerfile
构建镜像的方式对比:
构建方式 | dockerfile | Jib |
---|---|---|
docker环境 | 需要 | 无需 |
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
到此这篇关于基于jib-maven-plugin快速构建微服务docker镜像的方法的文章就介绍到这了,更多相关jib-maven-plugin构建微服务docker镜像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
go micro微服务proto开发安装及使用规则
目录 一 Protobuf介绍 二 安装Protobuf 三 Protobuf语法 1.1 基本规范 1.2 字段规则 1.3 service如何定义 1.4 Message如何定义 四 proto代码编写 五 生成.go文件 六 最后 一 Protobuf介绍 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件. 他们用于 RP
-
Java微服务Filter过滤器集成Sentinel实现网关限流过程详解
目录 Gateway-过滤器Filter 局部路由过滤器 使用局部过滤器 全局过滤器 使用全局过滤器 集成Sentinel实现网关限流 网关限流 API分组限流 Gateway-过滤器Filter 过滤器就是在请求的传递过程中,对请求和响应做一些手脚. 在Gateway中, Filter的生命周期只有两个:“pre”和“post”". .PRE:这种过滤器在请求被路由之前调用.我们可利用这种过滤器实现身份验证.在集群中选择请求的微服务.记录调试信息等. .POST:这种过滤器在路由到微服务以后执
-
Mybatis与微服务注册的详细过程
目录 一.SpringBoot整合MybatisPlus 创建自动生成代码子模块 创建商品服务子模块 二.SpringBoot整合Freeamarker 三.SpringBoot整合微服务&gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windows版nginx 请求链路测试 一.SpringBoot整合MybatisPlus 创建自动生成代码子模块 1.基于maven方式创建子模块zm
-
go-micro微服务JWT跨域认证问题
目录 一 JWT介绍 二 JWT优缺点 三 JWT使用 1. 导包和数据定义 2.生成JWT 3.解析JWT 4.完整代码 四 最后 一 JWT介绍 JWT 英文名是 Json Web Token ,是一种用于通信双方之间传递安全信息的简洁的.URL安全的表述性声明规范,经常用在跨域身份验证. JWT 以 JSON 对象的形式安全传递信息.因为存在数字签名,因此所传递的信息是安全的. 一个JWT Token就像这样: eyJhbGci0iJIUzI1NiIsInR5cCI6IkpXVCJ9.ey
-
Java Feign微服务接口调用方法详细讲解
目录 Feign说明 引入依赖启动类开启客户端 Feign接口开发 编写容错类 在业务层调用Feign客户端接口 Feign的常用属性如下 Feign说明 Feign是一种声明式.模板化的HTTP客户端.在spring cloud中使用Feign,可以做到类似于普通的接口的请求调用,可以发现对应的服务的接口,进而直接调用对应服务中的接口. 引入依赖启动类开启客户端 首先需要引入依赖 <dependency> <groupId>org.springframework.cloud<
-
详解go-micro微服务consul配置及注册中心
目录 一 Consul介绍 1. 注册中心Consul基本介绍 2.注册中心Consul关键功能 3.注册中心Consul两个重要协议 二 Consul安装 1.使用docker拉取镜像 三 Config配置 四 Consul代码编写 1.设置consul配置中心 2.获取consul配置中心的数据 3.consul可视化界面数据编写 4. main.go代码编写 五 最后 一 Consul介绍 Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置. Consu
-
微服务链路追踪Spring Cloud Sleuth整合Zipkin解析
目录 前言 何为调用链路 Zipkin + Sleuth Zipkin Spring Cloud Sleuth Zipkin启动 引入jar 服务调用测试 总结 前言 如果在开发过程中,你还在靠查看服务器日志来寻找服务与服务之间的报错信息,那么这篇一定要来看下,通常在我们开发环境自测的时候,我们会将代码发布到开发环境,然后无论是通过postMan请求,还是通过页面请求,遇到报错的信息,我们都会去服务器上去看时实的日志,来寻找报错信息: 如果涉及到多个服务调用,这个时候会登陆多个服务器去查看服务的
-
微服务 Spring Boot 整合 Redis BitMap 实现 签到与统计功能
目录 引言 一.Redis BitMap 基本用法 BitMap 基本语法.指令 使用 BitMap 完成功能实现 二.SpringBoot 整合 Redis 实现签到 功能 ️需求介绍 核心源码 三.SpringBoot 整合Redis 实现 签到统计功能 四.关于使用bitmap来解决缓存穿透的方案 小结 引言 在各个项目中,我们都可能需要用到签到和 统计功能. 签到后会给用户一些礼品以此来吸引用户持续在该平台进行活跃. 签到功能,我们可以通过Redis中的 BitMap功能来实现 一.Re
-
go-micro微服务domain层开发示例详解
目录 一 domain层介绍说明 二 model层开发 三 repository层开发 四 service层开发 最后 一 domain层介绍说明 domain层专注于数据库数据领域开发,我们把数据库相关操作全部写在domain层. model层:数据表字段定义与开发 repository层:数据库数据CURD操作 service层:数据库相关业务操作 对于复杂的业务操作,这样可以使业务逻辑更加清晰,有利于后期开发与维护. 二 model层开发 在model目录下新建 user.go 文件 pa
-
微服务Spring Boot 整合 Redis 实现UV 数据统计的详细过程
目录 引言 一.HyperLoglog基础用法 HyperLoglog 基本语法.命令 HyperLoglog 命令完成功能实现 二.UV统计 测试百万数据的统计 ️什么是UV统计 使用SpringBoot单元测试进行测试百万数据统计 小结 引言 本文参考黑马 点评项目 在各个项目中,我们都可能需要用到UV数据统计功能,这样可以使我们更加方便.快捷的查看网站的活跃度! 一.HyperLoglog基础用法 HyperLoglog 基本语法.命令 HyperLogLog PFADD :将指定元素添加
-
SpringCloud微服务中跨域配置的方法详解
跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制. 同源策略,指的是协议,域名,端口都要相同,其中有一个不同都会产生跨域. 跨域相关含义: Access-Control-Allow-Origin:服务器允许请求的源: Access-Control-Allow-Headers: 服务器允许使用的头: Access-Control-Allow-Methods: 真实请求允许的方法: Access-Control-Allow-Cr
-
一文带你了解微服务架构中的"发件箱模式"
目录 前言 下订单的例子 发件箱模式 总结 前言 微服务架构如今非常的流行,这个架构下可能经常会遇到“双写”的场景.双写是指您的应用程序需要在两个不同的系统中更改数据的情况,比如它需要将数据存储在数据库中并向消息队列发送事件.您需要保证这两个操作都会成功.如果两个操作之一失败,您的系统可能会变得不一致.那针对这样的情况有什么好的方法或者设计保证呢?本文就和大家分享一个“发件箱模式”, 可以很好的避免此类问题. 下订单的例子 假设我们有一个 OrderService 类,它在创建新订单时被调用,此
-
简单介绍一下什么是microservice微服务
目录 一.单体软件 二.面向服务架构 三.微服务 References 微服务(microservice)是一种软件架构,正得到越来越多的关注. 但是,它到底是什么意思?什么样的架构可以叫做微服务? 网上的文章虽然很多,但是都太复杂,初学者不容易看懂.我认为,这个概念其实非常简单,可以很通俗地说明白. 一.单体软件 要理解微服务,首先需要理解软件架构的演变. 早期的软件,所有功能都写在一起,这称为单体架构(monolithic software). 整个软件就是单一的整体,彷佛一体化的机器. 可
-
go micro微服务框架项目搭建方法
目录 一 微服务项目介绍 二 go-micro安装 1.拉取micro镜像 2.生成项目目录 三 项目搭建 使用DDD模式开发项目: 四 最后 一 微服务项目介绍 账户功能是每一个系统都绕不开的一部分,所以本次搭建的微服务项目就是账户微服务项目,其中向外暴露的功能有: 登录 注册 查询用户信息 修改信息 发送注册邮件 发送重置密码邮件 重置密码 获取权限 修改权限 退出账号 删除账号 禁用账号 启用账号 提供的功能总共有13个,基本上包含了账户相关的所有功能! 在本次微服务项目中使用到的技术包括
随机推荐
- 详解基于Angular4+ server render(服务端渲染)开发教程
- 对错误,漏洞和exploits的说明
- Redis的Python客户端redis-py安装使用说明文档
- Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
- javascript实现文字无缝滚动
- Java使用正则表达式删除所有HTML标签的方法示例
- asp.net 获取TreeView中第一个选中的节点
- Python PyQt5实现的简易计算器功能示例
- python中实现延时回调普通函数示例代码
- Vue.js项目模板搭建图文教程
- jQuery手动点击实现图片轮播特效
- 基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
- sqlserver中的自定义函数的方法小结
- JQuery 设置checkbox值二次无效的解决方法
- PHP 无限级分类
- 详解Python中的__new__()方法的使用
- Android使用PhotoView实现图片双击放大单击退出效果
- vue权限管理系统的实现代码
- 微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
- PHP中number_format()函数的用法讲解