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>
posted @ 2023-05-16 16:44  嘸杺  阅读(200)  评论(0编辑  收藏  举报