写点什么

用 Jib 容器化 Java 应用程序

  • 2020-09-02
  • 本文字数:1105 字

    阅读完需:约 4 分钟

用Jib容器化Java应用程序

Jib是一个用于构建 Java 应用程序空间得到了节省并优化了 Docker 和 OCI 镜像的开源工具,它一直在不断添加新功能,以进一步改善开发和 CI/CD 的体验。其中的一些亮点包括 Jib 插件扩展框架、对流行应用程序框架的原生支持、CI/CD 性能的改进、以及使用Skaffold在本地 Kubernetes 上增强的开发体验。

Jib 插件扩展框架

Jib 真正的强大之处在于它能够以声明的方式将 Java 应用程序重新构建成优化了的 Docker 和 OCI 镜像,并应用容器最佳实践,而无需 Docker 守护进程。借助新的 Jib 插件扩展框架,用户现在可以扩展 Jib 来调整 Java 应用程序镜像的各个方面。扩展框架基于容器构建计划规范(Container Build Plan Specification),这是一个通用的、与工具无关的规范,可用于描述镜像的构建计划。Jib 核心团队已经发布了一些有用的扩展,比如GraalVM原生镜像扩展,可用于快速启动运行在容器中的 Java 应用程序。新的扩展可以作为 Maven 和 Gradle 的第三方插件来构建和贡献。

对应用程序框架的原生支持

现在,一些流行的应用程序框架(如Spring BootQuarkus)都获得了 Jib 的原生支持。对于 Spring Boot,Jib 中的打包容器化模式是通过容器化原始的瘦应用程序 JAR 而不是 Spring Boot JAR 来提供开箱即用的支持,后者往往不适合容器化。Jib 核心团队还发布了支持 Quarkus 的一方 JibMavenGradle扩展,从而可以完全控制如何配置和构建 Quarkus 镜像。请注意,这些扩展仍处于试验阶段,可能无法构建复杂的项目。

增强的 CI/CD 支持

由于 Jib 不依赖 Docker 守护进程,它可以创建和推送镜像,而无需下载相应的基础镜像。例如,一个典型的基于 Java 的 Dockerfile 将包含一个诸如FROM openjdk:11-jre-slim这样的行来指定基础镜像。如果 Docker 镜像缓存中没有这个基础镜像,Docker 守护程序就必须下载它,这是 CI/CD 环境中的一种典型情况。但是 Jib 有一些内置的智能功能,可以最大限度地避免下载基础镜像。将 Jib 集成到 CI/CD 管道中,可以减少构建时间,节省网络带宽和存储空间。

使用 Skaffold 提供本地 Kubernetes 开发支持

Skaffold 是一个优化了的工具,它提供了一种快速且可重复的本地 Kubernetes 开发工作流,现在可以与 Jib 集成。这种集成使 Skaffold 可以对 Java 镜像进行零配置自动同步。通过自动同步,Jib 可以将类文件更改和资源文件更改同步到正在运行的容器中,而无需重新构建和重新部署容器/舱室(Container/Pod)。请注意,该设置仅适用于分解了的非 WAR 应用程序,这是 Jib 的默认构建模式。此外,底层 Java 应用程序服务器还应支持重新加载或重新启动。


该项目的示例部分提供了一些使用 Jib 的入门示例。


原文链接:


Containerizing Java Applications with Jib


2020-09-02 14:391950

评论

发布
暂无评论
发现更多内容

Elasticsearch 分词器

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

日记 2021年2月12日(周五)

Changing Lin

2月春节不断更

并发编程系列:阻塞队列的实现原理

程序员架构进阶

jdk 阻塞队列 七日更 28天写作 2月春节不断更

Ray 1.0 架构解读

lipi

分布式计算 Apache Arrow ray

8. ㊙ Python 集合三板斧,滚雪球学 Python

梦想橡皮擦

Python 2月春节不断更 python入门

【LeetCode】找到所有数组中消失的数字Java题解

Albert

算法 LeetCode 2月春节不断更

【STM32】5分钟了解STM32的串口通信

AXYZdong

硬件 stm32 2月春节不断更

程序员成长第六篇:如何选择公司?

石云升

职业发展 2月春节不断更 选择公司

微信限量纪念版code封面来啦,速看领取方式

孙叫兽

视频号 2月春节不断更 孙叫兽 微信红包封面 纪念版

这段时间学习机器学习的感受

Nydia

Elasticsearch query string 分词

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

12周架构

FreeOcean

hadoop mapreduce YARN

【STM32】stm32f407 + DS18B20 碰出不一样的火花

AXYZdong

硬件 stm32 2月春节不断更

Python优化机制:常量折叠

Python猫

Python

手摸手Go 深入剖析sync.Pool

Leo叔叔

Go Concurrency Patterns sync.pool Go 语言

第四周作业

Ashley.

7. ✎会查新华字典不?会。Python字典已经掌握了

梦想橡皮擦

Python 爬虫 2月春节不断更 python入门

GitHub 上的优质 Linux 开源项目,真滴牛逼!

JackTian

GitHub Linux 开源 运维工程师 2月春节不断更

走进 Tokio 的异步世界

lipi

rust 异步 tokio

定投,积沙成塔的财富增长方式

boshi

理财 七日更

翻译:《实用的Python编程》01_02_Hello_world

codists

Python

【LeetCode】杨辉三角Java题解

Albert

算法 LeetCode 2月春节不断更

备战春招/秋招,开源社区系统 Echo,基于目前主流 Java Web 技术栈,并提供详细的开发文档和配套教程

飞天小牛肉

Java 开源 后端 springboot 2月春节不断更

职场心得

时间是一个人最好的证明

职场

千行百业中的我们,数字山河间的中国速度

脑极体

LeetCode 数据库刷题 - 596. 超过5名学生的课

小马哥

七日更 二月春节不断更

聊聊金钱

熊斌

2月春节不断更

为您收录的操作系统系列 - 进程管理(加餐)

鲁米

线程 进程 同步 生产者与消费者

第四周笔记

Ashley.

前端冲刺必备指南-this/call/apply/bind(万字长文)

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

写一个用例(第四周)

mas

用Jib容器化Java应用程序_容器_Uday Tatiraju_InfoQ精选文章