作为一个Java开发你用过Jib吗

栏目: IT技术 · 发布时间: 4年前

内容简介:Jib是其实最骚的还是名字。

1. 前言

作为一个 <a href='https://www.codercto.com/topics/22013.html'>Java</a> 开发你用过Jib吗

Jib是 Google 开发的可以直接构建 Java 应用的 DockerOCI 镜像的类库,以 MavenGradle 插件形式提供。它最骚操作的是可以在没有 Docker 守护程序的情况下构建,也就是说,您不必在计算机上安装 docker 守护程序!尽管 Spring Boot 2.3.0.RELEASE 已经推出了构建镜像的功能,胖哥还是忍不住要试试 Jib

其实最骚的还是名字。

2. Docker构建流程和Jib的构建流程

没有对比就没有伤害。我们还是要对比一下这两者的构建流程。

Docker构建流程需要我们先把项目打成 Jar 然后编写 Dockerfile ,然后使用 Docker 构建功能进行构建镜像、运行容器。流程如下:

作为一个Java开发你用过Jib吗

而Jib是这样构建的:

作为一个Java开发你用过Jib吗

作为一个 Java 开发者,不用再关心各种无关的命令和操作,只需要专注于Java,而且高效稳定以及可复用的增量构建。为什么 Jib 能这么快而高效?

传统上,将 Java 应用程序与应用程序 Jar 一起构建为单个图像层,而 Jib 的构建策略将 Java 应用程序分为多层,以进行更细化的增量构建。更改代码时,仅重建更改,而不重建整个应用程序。

3. Jib构建Spring Boot应用

接下来我将演示如何将 Spring Boot 应用打成镜像并上传到 Dockerhub 仓库。

Maven 工程为例,我们只需要在 pom.xml 中引入 Jib Maven 插件 。默认情况下 Jib 会把我们打好的镜像上传到 Googlegcr.io 仓库,实际中我们会把打好的镜像上传到私有仓库,所以我们要加一些个性化配置。这里我以 dockerhub 仓库为例添加一些个性化配置:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.4.0</version>
    <configuration>
        <!-- 相当于 Dockerfile 中的 FROM -->
        <from>
            <image>amazoncorretto:8</image>
        </from>
        <to>
            <!--构建镜像名称,这里我使用maven中定义的项目名称-->
            <image>daxus/${project.name}</image>
            <!--私有仓库的账号密码-->
            <auth>
                <username>felordcn</username>
                <password>yourpassword</password>
            </auth>
            <!--Docker 镜像的 tag 这里使用maven定义的版本号-->
            <tags>
                <tag>
                    ${project.version}
                </tag>
            </tags>
        </to>
    </configuration>
</plugin>

然后在项目根目录执行 mvn clean compile jib:build 就可以了。

作为一个Java开发你用过Jib吗

其实也可以简单引入 Jib 插件:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>2.4.0</version>
</plugin>

只不过我们的命令会更复杂一些,需要指定一些必要的参数,例如:

mvn clean compile jib:build \
    -Djib.to.image=myregistry/myimage:latest \
    -Djib.to.auth.username=$USERNAME \
    -Djib.to.auth.password=$PASSWORD
更多的定制命令可参考官方文档:

https://github.com/GoogleCont...

4. 总结

Jib使用起来非常简单,让开发人员以 Java 的风格来完成 Docker 镜像的构建,能够大大改善编程的体验。多多关注: 码农小胖哥 获取更多有用的编程干货教程。

关注公众号:Felordcn 获取更多资讯

个人博客:https://felord.cn


以上所述就是小编给大家介绍的《作为一个Java开发你用过Jib吗》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法基础

算法基础

布拉萨德 / 邱仲潘 / 清华大学出版社 / 2005-7 / 49.00元

本书是关于算法导论的经典教材,书中包括大量例题解答与命题证明。本书是按照算法类型而不是按照应用类型对算法进行介绍,以其清晰的概念讲解赢得专家们的广泛赞誉。本书适用对象广泛。对于学习算法设计与分析的本科生和研究生,本书是优透选教材。对于从事算法计算研究和工程应用的科研人员和工程技术人员,本书也是一本优秀的基础性读物。一起来看看 《算法基础》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具