如何使用构建包来构建 Java 容器

如何使用构建包来构建 Java 容器

您是否仍然编写冗长的 Dockerfile 来描述构建容器映像所需的每个步骤?然后,构建包来拯救你!开发人员只需向他们提供应用程序,构建包发挥其魔力,并将其变成一个功能齐全的容器,准备部署在任何云上。

但魔术究竟是如何发生的呢?如果生成的容器性能不符合业务需求,该怎么办?

本文将深入探讨构建包的幕后情况,了解它们的运行方式,并提供有关优化默认设置以达到更好的性能结果的提示。

什么是构建包?

构建包将应用程序源代码转换为可运行的生产就绪容器映像。构建包为开发人员节省了时间和精力,因为无需配置映像并通过 Dockerfile 手动管理依赖项。

Heroku是2011年第一家开发构建包的公司。从那时起,许多其他公司(Cloud Foundry,Google等)都采用了这一概念。2018 年,Heroku 与 Pivotal 合作创建了云原生构建包项目,该项目涵盖了容器映像的现代标准和规范,例如 OCI 格式。该项目是云原生计算基金会(CNCF)的一部分。

我们将在本文中使用的Paketo构建包是一个由Cloud Foundry支持并由VMware赞助的开源项目。它实现了云原生构建包规范,并支持最流行的语言,包括Java。使用 Paketo 构建包生成的容器可以在任何云上运行。

构建包的工作原理

构建包分两个阶段运行:检测和构建。

  1. 检测阶段

在检测阶段,构建包会分析源代码,寻找是否应将其应用于应用程序的指标。换句话说,根据源代码测试一组构建包,并选择第一组被认为适合代码来构建应用程序。在构建包检测到必要的指标后,它会返回创建映像所需的协定,并进入构建阶段。

  1. 构建阶段

在构建阶段,构建包转换代码库,满足之前编写的合同要求。它提供构建时和运行时环境,下载必要的依赖项,根据需要编译代码,并设置入口点和启动脚本。

建设者

生成器是构建容器映像所需的组件组合:

  • 构建包,一组可执行文件,用于分析代码并提供构建和运行应用程序的计划;
  • 堆栈由两个映像组成:构建映像和运行映像。生成映像提供构建环境(执行构建包的容器化环境),运行映像在运行时为应用程序映像提供环境;
  • 生命周期管理构建包执行,并将生成的工件组装到最终映像中。

因此,一个构建器可以自动检测和构建不同的应用程序。

构建包提供了多种 JVM — 如何选择?

Paketo buildpacks 默认使用 Liberica JVM。Liberica是一个基于HotSpot的Java运行时,由OpenJDK的主要贡献者支持,并由Spring推荐。它为所有LTS版本(8,11,1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值