写点什么

用 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:392357

评论

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

国产操作系统定义以及品牌汇总

行云管家

信创 国产化 国产操作系统

YashanDB 报错:YAS-04003 maximum number of open cursors 的处理方法

数据库砖家

数据库

来了!520这场发布会将开启“企业级”迈向大模型时代的大门!

奇点云

观测云产品更新 | 安全监测、事件中心、仪表板AI智能分析等

观测云

产品迭代

烟草行业专卖人员画像与队伍考评系统上线运行

中烟创新

中小学人工智能通识教育指南已发布,高校如何承接

ModelWhale

因 Druid 配置导致 YashanDB 报 YAS-04003 打开游标数过多的问题分析

数据库砖家

数据库

亚洲消费电子展|低成本获客秘籍,助力预算敏感型企业逆袭

AIOTE智博会

YashanDB 使用 exp 导出数据时报 YAS-00402 错误的处理思路

数据库砖家

数据库

时序数据库 IoTDB 集成 DataEase,又一可视化交互选择!

Apache IoTDB

DePIN需要什么样的公链?

PowerVerse

区块链+ Solana DePIN

打破算力瓶颈!起底百度智能云高性能存储加速系统如何让昆仑芯3万卡集群火力全开

百度Geek说

SEO与交互指标 二

溪抱鱼

typescript Google SEO

【HarmonyOS NEXT】多目标产物构建实践

深海的鲸同学 luvi

【等保问题解答】信息系统安全等级保护三级一年几次?有法律依据吗?

行云管家

网络安全 等保 等级保护 等保测评

创业进入新一轮的debug(测试)

程序员郭顺发

龙蜥开发者说:从技术向往到生态共建的机密计算之路 | 第 30 期

OpenAnolis小助手

开发者 操作系统 龙蜥社区 龙蜥社区开发者说

合合信息亮相2025中国图象图形大会,聚焦大模型时代的伪造图像检测

合合技术团队

人工智能 算法 图像识别 #大数据

VL 语言:AI 编程的通用语义桥 —— 连接自然语言与机器指令

代码制造者

LLM AI编程

全平台开源即时通讯IM聊天框架MobileIMSDK的服务端开发指南,支持鸿蒙NEXT

JackJiang

鸿蒙 网络编程 即时通讯 IM

DBeaver 执行多条 SQL 报错 YAS-04209 的解决方式

数据库砖家

数据库

第六章: SEO与交互指标

溪抱鱼

typescript SEO

多校加快推进教育数字化,全校6000+学生共上的人工智能通识课长啥样

ModelWhale

具身智能的下一步:如何构建跨场景通用训练数据集?

数据堂

人工智能 数据 数据标注 AI‘’ 具身智能

OASA 年度工作会议落幕:2025 目标规划全票通过,国际安全厂商 Tenable 正式加入

OpenAnolis小助手

操作系统 软件安全 供应链安全 龙蜥社区安全联盟 硬件安全

RAG越来越不准?你可能忽略了“元数据”的力量

电子尖叫食人鱼

Java 数据库 前端

(WEB CAD API)网页CAD实现圆孔标记功能

WEB CAD SDK

测吧高校软件测试实训系统

测试人

软件测试

【Java持久层技术演进全解析】从JDBC到MyBatis再到MyBatis-Plus

不在线第一只蜗牛

Java 数据库

小度X新京报共同发声,该学会适老的应该是年轻人

科技大数据

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