写点什么

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

评论

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

NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理

汀丶人工智能

大模型 NL2SQL

智能制造与AI大模型

百度开发者中心

人工智能 深度学习 大模型 智能制造

RUM 最佳实践-交互延迟的探索与发现

观测云

性能优化

解析为什么企业出海需要SD-WAN专线

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

【干货】零售商的商品规划策略

第七在线

ETLCloud结合kafka的数据集成

RestCloud

kafka ETL 数据集成

人大金仓:国产数据库的领航者,高速公路信息化的创新力量

科技热闻

零基础到精通,Postman安装使用教程(一)

霍格沃兹测试开发学社

英特尔和Altera发布边缘和FPGA产品,提供FPGA AI套件加速开发者创新

E科讯

抓包神器wireshark安装保姆级教程

霍格沃兹测试开发学社

Qt Group与高通公司合作,简化工业物联网的用户界面开发

财见

云手机解决海外社媒运营的诸多挑战

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 跨境云手机

文件处理的神器,一键上传签署,安全又高效!

聚道云软件连接器

案例分享

软件测试学习笔记丨Python的自动解包 自动组包

测试人

Python 软件测试 测试开发

大模型分布式训练并行技术

百度开发者中心

人工智能 深度学习 大模型

如何设计一个实时数据同步系统

golang redis 系统设计 数据同步

选择国外云主机的五大理由以及优劣势分析

一只扑棱蛾子

国外主机

【精选】发布应用到应用商店的基本介绍

IPQ9574 vs. QCN9074 Does the WiFi7 Platform DR9574 Support WiFi6 Card DR9074?

wallyslilly

QCN9074 ipq9574

小红书笔记详情API接口解析:轻松抓取内容数据,提升业务效率

技术冰糖葫芦

API Explorer api 货币化 API】 pinduoduo API

大型连锁企业异地组网稳定性提升指南

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 异地组网 SDWAN

RAG 修炼手册|一文讲透 RAG 背后的技术

Zilliz

nlp 向量数据库 LLM rag enbedding

国内低代码哪家强?深入探讨低代码选型关键指标和评估模型

牛刀专业低代码

低代码开发平台 国内低代码 低代码选择 低代码平台比较 低代码排名

基于istio实现单集群地域故障转移

华为云开发者联盟

微服务 istio 华为云 华为云开发者联盟 企业号2024年4月PK榜

探索314协议代币合约开发:解析AVE热搜上币与项目推广

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

2024上海国际智慧物业展览会

AIOTE智博会

智慧物业展 智慧物业展会 智慧物业展览会 智慧物业博览会

牛蛙!GoFrame2.7正式版的监控组件真是及时雨

王中阳Go

Go golang 面试题 面经 大厂面经

华为天气“赏春计划”来袭,浪漫解锁影音会员、出行礼包多重福利

最新动态

获取体育视频源数据与搭建自主体育直播平台源码的作用

软件开发-梦幻运营部

软件测试学习笔记丨测试框架体系 TDD DDT BDD ATDD 介绍

测试人

软件测试 测试开发

AMD 以全新第二代 Versal 系列器件扩展领先自适应 SoC 产品组合

财见

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