使用Google/jib maven插件构建docker镜像,并上传到harbor仓库

Google/jib

1 .前置条件:

无;

2.pom中引入插件

      <!-- Jib -->

      <plugin>

        <groupId>com.google.cloud.tools</groupId>

        <artifactId>jib-maven-plugin</artifactId>

        <version>0.9.11</version>

        <configuration>

          <from>

              <!-- 阿里云镜像仓库 -->

            <image>registry.cn-qingdao.aliyuncs.com/jibjava/jibfirst</image>

            <auth>

              <username>账号</username>

              <password>密码</password>

            </auth>

          </from>

          <to>

             <!-- 阿里云镜像仓库 -->

            <image>registry.cn-qingdao.aliyuncs.com/jibjava/jibfirst</image>

          </to>

        </configuration>

        <executions>

          <execution>

            <phase>package</phase>

            <goals>

              <goal>build</goal>

            </goals>

          </execution>

        </executions>

      </plugin>

命令: mvn compile jib:build -DsendCredentialsOverHttp=true

3.参数介绍

from:拉取的镜像的配置,默认为gcr.io/distroless/java

to:要生成的镜像的配置

image:拉取或生成的镜像名称

auth: 认证信息,分别为用户名和密码

<!-- 下面四个基本用不到,上面四个足以  -->

container: 容器的属性

jvmFlgs: JVM 容器的参数,和 Dockerfile 的 ENTRYPOINT作用相同

mainClass: 启动类限定名

args: main 方法的传入参数

ports: 容器暴露的端口,和 Dockerfile 的EXPOSE作用相同

三种方式的简单对比

构建方式

dockerfile

dockerfile-maven

jib

是否需要docker环境

是否需要dockerfile

构建复杂度

较复杂

较方便

很方便

灵活度

相对较高

 

Google/jib的好处

项目每次发布实际上变更的代码量不大,尤其依赖的jar变动的可能性较小,如果按照前两种方案构建镜像,会导致每次都全量构建,会导致存储和带宽资源浪费

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值