谷歌开源 Java 镜像构建工具 Jib

2023-04-11  本文已影响0人  华阳_3bcf

传统对 Java 应用程序进行容器化并非易事:你必须编写 Dockerfile,以 root 身份运行 Docker 守护进程,等待构建完成,最后将镜像推送到远程注册中心。

[注意]这只是针对纯粹的Java程序,如果你还要安装一些其它的依赖包,修改脚本等,就不合适了。

Docker 构建流程:


image.png

Jib 构建流程:


image.png

将java项目容器化push到registries

jib的引入非常简单,以maven plugin的方式集成到项目中,只需要在你的项目中引入下面代码即可

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>0.9.6</version>
    <configuration>
        <from>
            <!--base image-->
            <image>openjdk:alpine</image>
        </from>
        <to>
            <!--<image>registry.cn-hangzhou.aliyuncs.com/m65536/jibtest</image>-->
            <!--目标镜像registry地址,为了方便测试,你需要换成自己的地址,如果你的网络不好,可以选用国内加速器,比如阿里云的-->
            <image>registry.hub.docker.com/moxingwang/jibtest</image>
        </to>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
</plugin>

这只是一个最简单的配置,比如registry认证配置,jvm配置等等,可以参考github jib详细说明jib/jib-maven-plugin/

构建你的镜像

mvn compile jib:build

把镜像直接构建到本地docker中

使用这种构建方式,首先你要确保本已经安装docker并且环境变量都配置正确,因为这种方式jib依赖docker 命令执行,你还需要保证已经启动服务(在terminal中执行 docker --version 能够正确返回)。

mvn compile jib:dockerBuild

接下来直接操作,首先查看本地已有images

docker iamges

其它plugin

还有其它 plugin 完成类似功能,比如:

docker-maven-plugin

<plugin>
    <groupId>org.jolokia</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.11.5</version>
...
</plugin>

kubernetes-maven-plugin

<plugin>
    <groupId>org.eclipse.jkube</groupId>
    <artifactId>kubernetes-maven-plugin</artifactId> (4)
    <version>1.12.0</version>
</plugin>

参考

https://juejin.cn/post/6844903639882940423

上一篇下一篇

猜你喜欢

热点阅读