Google 宣布正式开源 Jib ,帮助 Java 应用快速容器化

西域战神 2018-07-11 16:38:48 ⋅ 672 阅读

Google 本周宣布开源一款新的 Java 工具 Jib ,旨在让开发者使用他们熟悉的工具更轻松地将 Java 应用程序容器化。

在7月9日发布的博客文章中,Google 软件工程师 Appu Goundan 和 Qingyang Chen 将 Jib 描述为一个容器镜像构建器,旨在处理将 Java 应用打包到容器中所涉及的所有步骤。

他们表示,容器使 Java 开发者比以往任何时候都更靠近“一次编写,随处运行” 的工作流程,但容器化 Java 应用却并非易事:你必须先编写 Dockerfile ,root 后运行 Docker 守护进程,等待构建完成,最后将镜像推送至远程注册表。Jib 将处理将应用打包到容器镜像过程中的所有步骤,它直接与 Maven 和 Gradle Java 开发环境集成,不需要你编写 Dockerfile 或安装 Docker ,只需将其作为插件添加到你的构建中,就可以立即将 Java 应用容器化。

Docker 构建流程:

Jib 构建流程:

Jib 利用 Docker 镜像中的分层功能,以 Maven 和 Gradle 插件形式提供,通过以下方式优化 Java 容器镜像构建:

  1. 简单 - Jib 采用 Java 实现,并作为 Maven 或 Gradle 构建的一部分运行。你不需要维护 Dockerfile ,运行 Docker 守护进程,甚至无需创建包含所有依赖项的 JAR 包。

  2. 快速 - Jib 利用镜像分层和注册表缓存来实现快速、增量构建。它读取你的构建配置,将应用分到不同的层中,只重新构建和推送发生变更的层。

  3. 可重现 - Jib 支持根据 Maven 和 Gradle 的构建元数据进行声明式的容器镜像构建,只要输入保持不变,就可以通过配置重复创建相同的镜像。

目标

  • 快速 — 快速部署您的更改。Jib 将你的应用程序分成多个层,从类中分离依赖项。你不必等待 Docker 重建整个 Java 应用程序 —— 只需部署更改的层即可

  • 可重现 — 使用相同内容重建容器镜像

  • Daemonless — 减少 CLI 依赖性。从 Maven 或 Gradle 中构建 Docker 镜像,然后推送到你选择的任何注册表,无需编写 Dockerfiles 并调用 docker build/push


在 Maven 中使用 Jib:

<plugin>  
   <groupId>com.google.cloud.tools</groupId>  
   <artifactId>jib-maven-plugin</artifactId>  
   <version>0.9.0</version>  
   <configuration>    
       <to>      
           <image>gcr.io/my-project/image-built-with-jib</image>    
       </to>  
   </configuration>
</plugin>
# Builds to a container image registry.

$ mvn compile jib:build
# Builds to a Docker daemon.

$ mvn compile jib:dockerBuild

在 Gradle 中使用 Jib:

plugins {
  id 'com.google.cloud.tools.jib' version '0.9.0'}
jib.to.image = 'gcr.io/my-project/image-built-with-jib'
# Builds to a container image registry.

$ gradle jib
# Builds to a Docker daemon.

$ gradle jibDockerBuil


---------------------END---------------------

后续的内容同样精彩

长按关注“IT实战联盟”哦




全部评论: 0

    我有话说:

    开源资讯」Guava 28.2 发布,GoogleJava 核心工具库

    前言 Guava 28.2 发布了,Guava 是 Google 的一个开源项目,包含许多 Google 核心 Java 常用库,如:集合 [collections] 、缓存 [caching

    Google发布Java 核心工具库——Guava 28.0

    Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和

    GitHub精选:2018年11月份最热门的Java开源项目

    又到了揭晓 11 月份最热门 Java 开源项目排名的时候了,在本月的名单中,出现了几个新面孔,如Java 核心知识库、轻量级容错组件Resilience4j .....

    微型Java开发框架Solon 1.1发布,QPS达10万+

    简介 Solon 是一个微型的Java开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,2700多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验

    蚂蚁宣布开源 KubeTEE:云原生集群机密计算框架

    蚂蚁在上海外滩大会可信原生技术论坛上宣布开源 KubeTEE。 KubeTEE 是一个云原生大规模集群机密计算框架,旨在解决在云原生环境中 TEE 可信执行环境技术特有的从开发、部署到运维整体流程

    Google Code:Google guava工具类快速使用

    Guava是对Java API的补充,对Java开发中常用功能进行更优雅的实现,使得编码更加轻松,代码容易理解。

    【重磅】微软正式宣布 .NET5支持跨平台、移动开发

    前言近期微软正式宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 。

    推荐一款功能强大,开源免费的H5可视编辑器

    H5-Dooring 是一款功能强大,开源免费的H5可视页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的H5落地页最佳实践。技术栈以react为主, 后台采用nodejs开发. 预览

    蚂蚁金服 Java RPC 开源框架—SOFARPC

    SOFARPC 是一个高可扩展性、高性能、生产级的 Java RPC 框架。

    XXL-JOB 针对未授权访问导致远程命令执行漏洞的声明

    对于日前 XXL-JOB 被各大云厂商报出存在远程命令执行漏洞的情况,XXL-JOB 作者表示此问题本质上不是“漏洞”,因为官网版本已提供鉴权组件,开启即可防护。具体回应如下: 该问题

    精品推荐:一览GitHub上最受程序欢迎的5大Java开源项目

    列举了GitHub上一些最流行的Java项目。从Mockitos到Guava,以及 java-design-patterns等供大家学习。

    微信开发神器全能微信Java开发工具包

    必须分享的微信神器 weixin-java-tools

    精品推荐:4个顶级开源JavaScript图表库

    图表对于可视数据和使网站具有吸引力非常重要。可视演示使分析大块数据和传达信息变得更加容易

    国产自研 servlet 容器,smart-servlet 体验版发布

    smart-servlet 是一款实现了Servlet 3.1规范,支持多应用隔离部署的的 Web 容器。除此之外,smart-servlet 还是一款插件容器,用户可以通过开发自定义插件扩展容器

    Java 零注解文档生成工具—smart-doc,看完有替换swagger的冲动

    Tips:喜欢的话可以关注小萌哦~~~今天小萌给大家推荐的一个开源Java Restful API 文档生成

    前端实战篇:JavaScript 反调试技巧的简单应用(上)

    最近作者看了一些关于JavaScript反调试的帖子,今天给大家整理一下希望有帮助

    开源推荐」Nginx可视配置工具—NginxWebUI,小白也可以玩转

    包括http协议转发, tcp协议转发, 反向代理, 负载均衡, ssl证书自动申请、续签、配置等

    开源推荐】基于 Go 语言的轻量级高性能日志库 logit使用及测评

    logit 是一个简单易用并且是基于级别控制的日志库,可以应用于所有的 GoLang 应用程序中。