博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Google开源其Java容器化工具Jib,简化镜像构建全流程
阅读量:7111 次
发布时间:2019-06-28

本文共 1149 字,大约阅读时间需要 3 分钟。

Google开源其Java容器化工具Jib,简化镜像构建全流程

作者|Appu Goundan、Qingyang Chen

编辑|无明、张婵

容器的出现让 Java开发人员比以往任何时候都更接近“编写一次,到处运行”的工作流程,但要对 Java应用程序进行容器化并非易事:你必须编写 Dockerfile,以 root身份运行 Docker守护进程,等待构建完成,最后将镜像推送到远程注册中心。但并非所有的 Java开发人员都是容器专家,像以前那样只需要构建一个 JAR包的日子已经结束了吗?

为了应对这一挑战,谷歌开源了一个 Java容器化工具 Jib,有了这个工具,Java开发人员可以使用他们熟悉的 Java工具来构建容器。Jib是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。它不需要你编写 Dockerfile或安装 Docker,而且可以直接集成到 Maven和 Gradle中——只需要将插件添加到构建中,就可以立即将 Java应用程序容器化。

Docker构建流程:

Google开源其Java容器化工具Jib,简化镜像构建全流程

Jib构建流程:

Google开源其Java容器化工具Jib,简化镜像构建全流程

Jib如何让开发变得更美好

Jib利用了 Docker镜像的分层机制,将其与构建系统集成,并通过以下方式优化 Java容器镜像的构建:

  1. 简单——Jib使用 Java开发,并作为 Maven或 Gradle的一部分运行。你不需要编写 Dockerfile或运行 Docker守护进程,甚至无需创建包含所有依赖的大 JAR包。因为 Jib与 Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择 Java构建过的任何变体。
  2. 快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。
  3. 可重现——Jib支持根据 Maven和 Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。

如何使用 Jib来容器化你的应用程序

Jib可作为 Maven和 Gradle的插件使用,并且只需要做出最少的配置。只需将插件添加到构建定义中并配置目标镜像即可。如果要将镜像推送到私有注册中心,要为 Jib配置所需的秘钥。最简单的方法是使用 docker-credential-gcr之类的凭证助手。Jib还提供了其他的一些规则,用于将镜像构建到 Docker守护进程。

在 Maven 中使用 Jib:

Google开源其Java容器化工具Jib,简化镜像构建全流程

Google开源其Java容器化工具Jib,简化镜像构建全流程

在 Gradle 中使用 Jib:

Google开源其Java容器化工具Jib,简化镜像构建全流程

Google开源其Java容器化工具Jib,简化镜像构建全流程

Jib项目地址:

github.com/GoogleContainerTools/jib

转载地址:http://pcmhl.baihongyu.com/

你可能感兴趣的文章
Centos 安装Memcache + phpmemcached
查看>>
获取网易云音乐歌曲URL
查看>>
计算机系统基础学习笔记及博客
查看>>
【Android游戏开发二十二】(图文详解)游戏中灵活实现动画播放!简述J2me的游戏类库与Android游戏开发!...
查看>>
grape入门
查看>>
Kilani and the Game-扩散形式的搜索
查看>>
2016.1.1 VS中宏的使用技巧点滴
查看>>
Java 为什么要使用反射(通俗易懂的举例)
查看>>
XSS是什么
查看>>
升级adt插件后,eclipse突然出现Unable to build: the file dx.jar was not loaded from the SDK folder 错误...
查看>>
github/python/ show me the code 25题(二)
查看>>
EasyMock入门
查看>>
线程池基础一
查看>>
5、struct2使用登陆的时候重定向功能,如果没有登陆,重定向到登陆页面
查看>>
JS-缓冲运动:菜单栏型悬浮框
查看>>
Unite 2018 | 《崩坏3》:在Unity中实现高品质的卡通渲染(上)
查看>>
HDU-4474 Yet Another Multiple Problem BFS搜索
查看>>
java在目录中过滤文件
查看>>
[转]重构36计
查看>>
C#调用Delphi写的动态链接库
查看>>