当前位置: 首页 > 知识库问答 >
问题:

spring boot:build image和jib的区别是什么?

冯德宇
2023-03-14

Spring靴2.3。x增加了通过spring boot:build image使用插件构建Docker映像的功能。Jib似乎支持相同的功能,但不限于Spring boot。

Spring Boot应用程序是否利用了jib没有提供的任何特定优化(这就是为什么有一个Spring Boot插件?)

除了无法在私有注册表中使用引导映像。

共有3个答案

赫连明诚
2023-03-14

我认为Andy和loosebazooka的回答中缺少(或者说我还不够清楚)的一个重要方面是,Spring Boots“创建图像”确实需要一个Docker执事来构建。传统上,创建docker映像构建会调用“docker build…”之类的命令。Create image做了类似的事情,因此需要Docker安装,可以是本地安装,也可以是远程安装(使用Docker_主机设置)。

JIB没有这个限制,这可能是构建服务器的一个优势。

方轩昂
2023-03-14

我们希望Jib与所有框架都能很好地协同工作,我们对spring boot的持续支持是当务之急。如果您喜欢jib,并且希望继续使用它,那么应该看不到性能上的差异。事实上,spring团队已经在Spring Boot工具中添加了一些配置,可以帮助各地的容器生成器构建更好的容器。

除此之外,Jib还可以在任何地方运行,您不需要容器运行时,也不需要buildpacks服务,只要您有源代码和构建文件,就可以创建容器。

是的,rebase是有价值的,但是BuildPack上的比较。关于为什么BuildPack是最好的,io显然会有一点营销魔力。因为容器是如何建造的,所以重基是平滑和容易的。开始理解它的一个有用方法是用艰难的方式构建容器。在Buildpacks和Jib中,重基的工作方式有如下区别(我认为主要是):

  • buildpack:buildpack基本映像在堆栈中定义,如果选择使用buildpack,则将使用buildpack堆栈中提供的“运行映像”。如果你想更新你的基本映像,那只能在buildpack所有者更新了堆栈的“运行映像”后发生(编辑:看起来可能不是这样,用户可以使用他们自己的“运行映像”,但我认为这会稍微影响工作流程?)。然后运行重基将更新您的图像。如果这符合你所在组织的工作流程,效果会很好。如果你想控制你的图片更新,那么你需要依靠上游来实现
  • Jib:在Jib中,虽然有一个默认的基本映像,但应用程序构建的映像的选择取决于您。你可以随意更新。更新基础映像与更改基础映像并运行构建一样简单。由于Jib如何处理跨系统的缓存和再现性,您不应该遇到任何额外的成本,其结果与包重基相同。这里的优点是,您不会受buildpack所有者的摆布
况繁
2023-03-14

Jib和Spring Boot的图像构建之间的主要区别在于后者使用Buildpacks来创建图像。buildpacks.io上有一个对照表,列出了一些最显着的差异。

这是主观的,但重新定基的支持可能是最值得注意的。重新设置映像的基址允许在新的操作系统或JVM层上重新设置包含应用程序代码的一个或多个层的基址,而无需重建应用程序。这使得操作系统和JVM安全更新的应用速度远远快于为了使用更新而必须重建每个应用程序及其整个映像的情况。

 类似资料:
  • 本文向大家介绍#{}和${}的区别是什么?相关面试题,主要包含被问及#{}和${}的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 #{}是预编译处理,${}是字符串替换。 Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值; Mybatis 在处理{}时,就是把${}替换成变量的值。 使用#{}可以有效的防

  • 本文向大家介绍redux和flux的区别是什么?相关面试题,主要包含被问及redux和flux的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 Flux: Store 包含状态和更改逻辑 有多个 Store 所有 Store 都互不影响且是平级的 有单一调度器 React 组件订阅 store 状态是可变的 Redux: Store 和更改逻辑是分开的 只有一个 Store 带有分层 re

  • 本文向大家介绍useState和this.state的区别是什么?相关面试题,主要包含被问及useState和this.state的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 内部基于 实现,方法返回 state 本身以及一个修改 state 的方法。 通过 修改数据,不会和 一样进行对象属性合并,会直接覆盖。 Hooks 函数组件中,存在的概念,在一次渲染闭包中,state 是固定不

  • 本文向大家介绍pjax和ajax的区别是什么?相关面试题,主要包含被问及pjax和ajax的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 pjax 是一个 jQuery 插件,它通过 ajax 和 pushState 技术提供了极速的(无刷新 ajax 加载)浏览体验,并且保持了真实的地址、网页标题,浏览器的后退(前进)按钮也可以正常使用。 pjax 的工作原理是通过 ajax 从服务器

  • 1、float 和 double 的区别是什么? (1)内存中占有的字节数不同 单精度浮点数在内存中占有4个字节; 双精度浮点数在内存中占有8个字节; (2)有效数字位数不同 单精度浮点数有效数字8位; 双精度浮点数有效数字16位; (3)数值取值范围不同 单精度浮点数的表示范围:-3.40E+38~3.40E+38 双精度浮点数的表示范围:-1.79E+308~-1.79E+308 (4)在程序

  • char的长度是固定的,varchar的长度的可变的; char的效率比varchar的效率高; char占用空间比varchar大,char在查询时需要使用trim;