首页 > 其他分享 >基于jib-maven-plugin快速构建微服务docker镜像

基于jib-maven-plugin快速构建微服务docker镜像

时间:2023-02-24 11:07:23浏览次数:33  
标签:插件 jib plugin maven 构建 镜像 dockerfile

file

一、说明

本文介绍基于 Maven 插件 jib-maven-plugin 实现快速构建 Spring Boot 程序镜像,并推送到远程仓库中,且 无需安装 Docker 环境 。

Jib 是 Google 开发的一个无需 Docker 守护进程,也无需深入掌握 Docker 最佳实践的情况下,为 Java 应用程序构建 Docker 和 OCI 镜像,以 Maven 和 Gradle 插件形式提供。

 

二、插件使用

下图为插件的配置样例,构建后的镜像发布到阿里云仓库中(免费):

file

阿里云仓库配置以及用户名密码需要按照自己注册的信息进行修改

注册地址:https://cr.console.aliyun.com/

插件详细的配置可查看: https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin

配置中增加了 execution 进行触发,当 Maven 执行 package 命令时会自动构建并发布镜像:

file

登录阿里云容器镜像服务,即可查看我们发布的镜像:

file

 

三、总结

对于 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,plugin,maven,构建,镜像,dockerfile
From: https://blog.51cto.com/u_14750592/6077451

相关文章

  • maven 打包,包名带时间戳
    1.情景展示使用maven插件,将maven项目进行打包时,如何令其名称后面追加时间戳?2.具体分析使用buildnumber-maven-plugin插件打包3.解决方案在pom.xml当中添加以下内容......
  • 2月23日javaweb之Maven
    Maven常用命令compile:编译clean:清理test:测试package:打包install:安装Maven生命周期Maven对项目构建的生命周期描述是一次构建过程经历了多少个时间。Maven对项目的......
  • vite:记录如何手写一个plugins插件
    昨天看了一篇文章【Vite实战:手把手教你写一个Vite插件】,讲的是开发了一个编译markdown文件,解析为html的插件,看完之后自己记录一下啦,了解一下开发一个vite插件的书写格......
  • 常用maven命令与配置
    注册本地jar包mvninstall:install-file-Dfile=D:\workspace\java\gitlab\mybatis-plus-extension\target\mybatis-plus-extension-3.3.1-o2m.jar-DgroupId=com.baomid......
  • Maven Nexus 上传/下载
    下载:方式一:maven配置pom<dependency><groupId>com.aaa</groupId><artifactId>aaa.webInvoice</artifactId><version>0.0.1-SNAPSHOT</version><type>......
  • 使用骨架创建maven的web工程、servlet实例之间指定web资源包、实例之导入项目依赖的ja
    使用骨架创建maven的web工程操作一样把勾进行勾选找到webapp选项下一步创建就行创建好会有显示目录结构其余的都需要自己手动补齐有小蓝点的才是一个web项目如果......
  • 2月22日javaweb学习之Maven
    Maveb是专门用于管理和构建java项目的工具,它的主要功能有:1.提供一套标准化的项目结构。2.提供一套标准化的构建流程(编译、测试、打包、发布......)3.提供了一套依赖管理......
  • day76-mixins混合,plugins插件,scoped混合
    mixins混合把多个组件公用的配置属性提取成一个混入对象先配置minins.js文件exportconstmixin={methods:{showName(){alert(this.......
  • vite插件 | 自动导入 unplugin-auto-import/vite
    一、安装依赖npmi-Dunplugin-auto-import二、创建文件//和src平级vite/plugins//目录三、目录里创建index.jsimportvuefrom'@vitejs/plugin-vue'import......
  • E029Web学习笔记-Maven基础
    一、Maven概述1、简介Maven是一个非常强大的项目管理和综合工具; 2、Maven依赖管理Maven将Java项目所需要的Jar包放在一个统一的仓库里面,多个项目可以共同使用; 3、项目的一......