Jib

Jib is is a Maven plugin for building Docker and OCI images for your Java applications.

目标

  • 快速

快速部署您的变更。Jib将应用程序分成多个层,将依赖项与类分开。现在,您不必等待Docker重新构建整个Java应用程序——只需部署已更改的层。

  • 可再现性

—用相同的内容重新构建容器映像总是生成相同的映像。不要再次触发不必要的更新。

  • 无守护

减少CLI的依赖性。

从Maven或Gradle中构建Docker映像,并将其推送到您选择的任何注册表。不再编写Dockerfiles并调用docker构建/push。

工作原理

传统上,Java应用程序是用应用程序JAR构建为单个映像层的,而Jib的构建策略将Java应用程序分为多个层,以实现更细粒度的增量构建。 当您更改代码时,只需要重新构建更改,而不是整个应用程序。默认情况下,这些图层都是在distroless的基础图像上分层的。

有关 Bazel 构建系统的类似现有容器映像构建工具,请参见 rules_docker

快速开始

您可以使用以下命令轻松地包含您的应用程序:

mvn compile com.google.cloud.tools:jib-maven-plugin:0.9.2:build -Dimage=<MY IMAGE>

这将构建并将应用程序的容器映像推送到容器注册表。如果遇到身份验证问题,请参阅身份验证方法。

要构建到Docker守护进程,请使用:

mvn compile com.google.cloud.tools:jib-maven-plugin:0.9.2:dockerBuild

使用 maven 配置

<project>
  <!-- ... -->
  <build>
    <plugins>
      <!-- ... -->
      <plugin>
        <groupId>com.google.cloud.tools</groupId>
        <artifactId>jib-maven-plugin</artifactId>
        <version>0.9.2</version>
        <configuration>
          <to>
            <image>myimage</image>
          </to>
        </configuration>
      </plugin>
      <!-- ... -->
    </plugins>
  </build>
  <!-- ... -->
</project>