当前位置: 首页 > 软件库 > 开发工具 > 项目构建 >

Jib

为 Java 应用构建容器镜像
授权协议 Apache-2.0
开发语言 Java
所属分类 开发工具、 项目构建
软件类型 开源软件
地区 不详
投 递 者 田昊天
操作系统 跨平台
开源组织 Google
适用人群 未知
 软件概览

Jib 是 Google 开发的可以直接构建 Java 应用的 Docker 和 OCI 镜像的类库,以 Maven 和 Gradle 插件形式提供。

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

Docker 构建流程

Jib 构建流程

目标

  • 快速 — 快速部署您的更改。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
  • Jib使用简介 ##1、简介 Jib是Google开源的镜像打包工具,以Maven和Gradle插件的形式提供,用来将你的Java应用程序制作为Docker镜像文件。GitHub地址:https://github.com/GoogleContainerTools/jib 2、安装与使用 plugins { id 'java' id 'com.google.cloud.tools.j

  • jib主要用来在没有docker环境下将项目打包成docker镜像 主要有一下四种方式: maven、gradle、core、cli 本文主要介绍cli和maven两种打包方式 github地址: https://github.com/GoogleContainerTools/jib 1. 使用jib-cli将war包打成docker镜像 例子: jib war --send-credentia

  • Jib

    为了更方便将 Java 应用程序容器化,Google 于去年推出了 Jib 工具。Jib 是一个快速而简单的容器镜像构建工具,它负责处理将应用程序打包到容器镜像中所需的所有步骤。

 相关资料
  • 我正在使用Jib创建docker容器并将其推送到注册表。为此,我想构建一个Docker映像,在将该映像推送到Gitlab注册表之前,可以用于容器扫描。我面临的问题是,我不能为构建使用docker映像,因为它没有运行docker代理。我不能使用图像,因为它没有maven图像。有没有办法在不创建自定义docker映像的情况下解决这个问题? 这是我的与本部分相关的文件: 如果是docker图像: 如果是

  • 问题内容: 我要做的是为我的Java应用程序构建一个docker映像,但是以下注意事项对于大多数编译语言都应适用。 在构建服务器上,我想为应用程序生成一个docker映像作为可交付成果。为此,我必须使用一些构建工具(通常是Gradle,Maven或Ant)来编译应用程序,然后将创建的JAR文件添加到docker映像中。因为我希望Docker映像仅执行JAR文件,所以我当然将从已安装Java的基本映

  • 但我的Dockerfile不再是独立的。它的工作取决于Docker外部发生的步骤。在我的Dockerfile中,我将有一个或语句,用于将JAR文件复制到映像中。如果事先没有创建jar,则此语句将失败。所以仅仅执行Dockerfile可能无法工作。如果您想要与仅使用当前Dockerfile构建的服务集成,比如DockerHub上的自动构建特性,那么这就会成为一个问题。 在这种情况下,创建映像的所有必

  • 通过前面的介绍,我们知道了Docker 镜像是多个基于 UnionFS 的镜像层依次挂载的结果,而容器的文件系统则是在以只读方式挂载镜像后增加的一个可读可写的文件系统复合而成。 Docker 中为我们提供了将容器中的这个可读可写的环境持久化为一个镜像层的方法,即docker commit。 docker commit将容器修改的内容保存为镜像,我们可以把它理解为提交容器的更改。 1.生成变更后的镜

  • 我有一个Spring boot应用程序,它有许多模块,如错误模块、持久性、控制器等,如下所示 使用Maven jib插件构建docker镜像,pom中的配置如下。xml 构建成功了。但是当我运行图像时,它的抛出错误是:找不到或加载主类com。a、 卑诗省申请 如何使用Jib构建图像?。我错过了什么?

  • 安装配置镜像仓库docker-distribution 安装 # yum -y install docker-distribution # systemctl enable docker-distribution.service # systemctl start docker-distribution.service # systemctl status docker-distribution.

  • 问题内容: 我在docker构建期间遇到了npm问题。我是公司代理的幕后推手,已经阅读了约30篇文章(和stackoverflow帖子),解决了类似问题。但是,我仍然无法克服这一点。 我能够“ npm安装”项目,并在docker构建过程之外(但也使用代理)获取所有必需的依赖关系,但不能在此期间获取。 到目前为止我尝试过的是: 直接使用代理(以及经过硬编码的身份验证数据),也可以通过CNTLM使用。

  • 我正在尝试创建一个管道,使用JIB(通过Maven插件)创建docker图像,并将其推送到我的Gitlab注册表。 当我登录到docker注册表时,这在本地运行良好。 说我有一个。gitlab ci。yml看起来像: 现在我在管道被触发时得到一个异常 我假设我得到了这个错误,因为我还没有运行docker login-u[用户名]-p[密码/令牌] 我怎么会需要一个.gitlab-ci.yml,它使