Google 开源 Java 容器化工具

Google 云平台官方博客发布了新的开源工具 Jib,一款快速而简单的容器镜像构建工具,能使容器技术和 Java 编程语言更加无缝地协同工作,使 Java 开发人员能更轻松地跨用例部署和控制 Java 应用程序。

容器技术使得 Java 人员比以往都更接近『一次编写,随处运行』的工作流程,但要容器化 Java 应用程序却不是一件简单的事:你必须编写 Docker file,以 root 身份运行 Docker 守护程序,等待构建完成,最后将图像推送到远程注册表。并非所有 Java 开发人员都是容器专家;容器化 Java 应用程序,并不是建一个 JAR 包那么简单。Docker 构建流程:

为了应对这一挑战,Google 发布了 Java 容器 Jib,允许 Java 开发人员使用他们所知道的 Java 工具构建容器。Jib 是一个快速而简单的容器镜像构建器,它可以处理应用程序打包到容器映像中的所有步骤。它不需要开发者编写 Docker file 或安装 Docker,它直接集成到 MavenGradle 中 -开发者只需将插件添加到构建中,就可以立即将 Java 应用程序容器化。Jib 构建流程:

  1. 简单 – Jib 利用 Docker 镜像中的分层功能,并与构建系统集成,以通过以下方式优化 Java 容器映像构建:简单 –  Jib 在 Java 中实现,并作为 Maven 或 Gradle 构建的一部分运行。你不需要维护 Docker file、运行 Docker 守护程序,甚至无需创建具有所有依赖项的 JAR。由于 Jib 与你的 Java 构建紧密集成,因此它可以访问打包应用程序所需的所有信息。在后续容器构建期间,将自动选择Java构建中的任何变体。
  2. 快速 –  Jib 利用图像分层和注册表缓存来实现快速,增量构建。它能够读取你的构建配置,将你的应用程序组织到不同的层(依赖项,资源,类)中,并仅重建和推送已更改的层。在项目上快速迭代时,Jib 可以仅将已更改的层推送到注册表,以此来节省构建时间
  3. 可重现 –  Jib 支持从 Maven 和 Gradle 构建元数据以声明方式构建容器图像,因此可以配置为只要输入保持不变,就可以通过配置创建可重现的构建镜像。

另外,Jib 可作为 Maven 和 Gradle 的插件使用,并且需要最少的配置。只需将插件添加到构建定义中并配置目标镜像即可。如果要构建到私有注册表,请确保使用注册表配置 Jib。最简单的方法是使用 docker-credential-gcr 之类的凭证助手。如果需要,Jib 还提供了用于为 Docker 守护程序构建映像的其他规则。