google-jib插件
1、什么是jib
Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle插件形式提供。
Jib带来的是,它允许您通过简单地将插件添加到您选择的构建工具(Maven或Gradle)来创建容器,没有额外的文件,只需几行配置,它处理将应用程序打包到容器的所有步骤。
Jib是来自Google的开源Java容器,它允许Java开发人员使用他们所知道的Java工具构建容器,它不需要您编写Dockerfile或安装了docker,它直接集成到Maven和Gradle中。
总结:jib就是将项目打包成镜像并发布到镜像仓库的工具。
2、Jib构建流程
通过 Jib,Java 开发者可以使用他们熟悉的 Java 工具来构建容器。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写 Dockerfile 或安装Docker,而且可以直接集成到 Maven 和 Gradle中 —— 只需要将插件添加到构建中,就可以立即将Java 应用程序容器化。
3、maven集成及常用配置
插件详细的配置可查看:
https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
<plugin>
<!--jib插件-->
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>2.3.0</version>
<configuration>
<!-- 拉取所需的基础镜像 - 这里用于运行springboot项目 -->
<from>
<image>openjdk:8-jre-alpine</image>
</from>
<!-- 生成的镜像配置 -->
<to>
<!-- 将项目做成镜像后的镜像名称 -->
<!-- 如果是阿里云的容器镜像仓库,则使用容器的配置:前缀/命名空间/仓库名 -->
<image>${registryUrl}/${registryNamespace}/${project.name}</image>
<tags>
<!--版本号-->
<tag>${version}</tag>
</tags>
<auth>
<!-- 在镜像仓库(阿里云、docker-hub、harbor)的账号和密码 -->
<username></username>
<password></password>
</auth>
</to>
<!--增加allowInsecureRegistries,使jib插件支持http协议连接镜像仓库(安全起见,默认是关闭的)-->
<allowInsecureRegistries>true</allowInsecureRegistries>
<container>
<!--项目主启动类的位置-->
<mainClass>com.fpwis.monitor_management.MonitorManagementApplication</mainClass>
<!--设定容器时间,将镜像的创建时间与系统时间对其-->
<creationTime>USE_CURRENT_TIMESTAMP</creationTime>
<!-- jvm启动参数 -->
<jvmFlags>
<jvmFlag>-Xms128m</jvmFlag>
<jvmFlag>-Xmx128m</jvmFlag>
<jvmFlag>-Duser.timezone=Asia/Shanghai</jvmFlag>
<jvmFlag>-Dfile.encoding=UTF8</jvmFlag>
</jvmFlags>
<ports>
<!-- 暴漏的端口号 -->
<port>8888</port>
</ports>
</container>
</configuration>
<executions>
<!-- 执行打包配置 -->
<execution>
<id>jib-maven-plugin</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>