【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

评论

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

究诸经典,探寻大模型演变之踪迹

Baihai IDP

人工智能 深度学习 大模型 LLM 白海科技

【论文解读|GL-Cache 】基于组级学习的缓存替换算法

Databend

开源一个网页版的 Xshell,支持 FTP 和 SFTP 两种方式!

Java你猿哥

Java json ssm Cookie xshell

Software 软件版本的含义

Andy

背刺Alibaba?阿里巴巴工程师1480道Java面试题及答案整理( 2023年 整理版)

Java你猿哥

Java MySQL redis JVM mybatis

写给程序员的可逆计算理论辨析

canonical

开源 低代码 Docker 镜像 可逆计算 Nop平台

GPT用于复杂代码生产所需要满足的必要条件

canonical

低代码 GPT GPT-4 可逆计算

数据可视化管理尽在RazorSQL注册激活版~

真大的脸盆

Mac 数据库管理 Mac 软件 管理数据库 数据库处理

C语言编程—枚举

攻城狮Wayne

Go Module 语义化版本规范

江湖十年

Go 语言 go module go mod

人工智能与数据分析

Data 探险实验室

人工智能 机器学习 AI 数据分析 数据

经典智能合约案例之发红包

timerring

区块链

实测 亚马逊AI 编程助手 Amazon CodeWhisperer(全网最全)

攻城先森

人工智能 编程 测试 AWS 亚马逊云科技

经典智能合约之智能拍卖

timerring

区块链

深度学习进阶篇-国内预训练模型[5]:ERINE、ERNIE 3.0、ERNIE-的设计思路、模型结构、应用场景等详解

汀丶人工智能

人工智能 自然语言处理 深度学习 文心 ERNIE Transformer

LangChain:构建个人AI代理从这里开始

devpoint

人工智能 AI langchain

ChatGPT对软件测试的影响

BY林子

软件测试 ChatGPT

BeanUtils.copyProperties的11个坑

Java你猿哥

Java spring ssm bean

YashanDB携手中地数码联合发布空间数据存储管理解决方案

YashanDB

国产数据库

文心一言 VS 讯飞星火 VS chatgpt (24)-- 算法导论4.2 6题

福大大架构师每日一题

福大大 ChatGPT 文心一言 讯飞星火

2023-05-28:为什么Redis单线程模型效率也能那么高?

福大大架构师每日一题

redis 福大大

软件设计中你考虑过重试了吗?

Java你猿哥

Java ssm 软件设计

1行代码合并多个PPT文件,Python自动化办公

程序员晚枫

Python PPT 自动化办公

未来,零信任安全还会持续火热吗?

权说安全

线程池是如何执行的?任务太多会怎样?

javacn.site

知识点总结

程序员小张

YashanDB推出共享集群技术 剑指核心系统替换

YashanDB

国产数据库

YashanDB:以自研根技术筑牢企业数字化发展根基

YashanDB

国产数据库

HUAWEI永远滴神!华为顶级网络专家总结出了这份网络协议开源手册

Java你猿哥

TCP ssm 网络协议 io IP

CSS小技巧使用 font-variation 让文字起飞

南城FE

CSS 设计 前端开发 动画 字体

七年老程序员的三四月总结:三十岁、准备婚礼、三次分享

拭心

程序人生 总结思考

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