Google Cloud 的 Buildpack 是一个开源项目,可获取应用源代码并将其转换为可用于生产用途的容器映像。Google Cloud 发布的 Buildpack 实现了云原生 Buildpack 规范,旨在帮助您构建和配置可部署到 Google Cloud 的容器。
Buildpack 通常负责语言组件、工具链或应用组件,例如 Python、pip
或 Web 服务器。Buildpack 分组为名为构建器的集合,这些集合可以分析项目源代码、创建构建计划,以及生成可进行部署的容器映像。
使用 Buildpack 进行容器化
当您在 Google Cloud 无服务器产品中部署应用(服务)或函数时,代码会使用 Buildpack 打包到可运行的容器中。在 Cloud Run 上,您可以选择部署预构建容器或部署源代码,让 Cloud Run 管理容器构建。在 Cloud Run functions 和 App Engine 上,容器化过程是完全托管的,这意味着当您部署源代码时,系统会为您完成所有容器映像打包和转换工作。
每个容器映像都使用运行部署所需的所有组件进行构建,包括源代码、系统和库依赖项、配置数据和静态资产。默认情况下,Google Cloud 无服务器产品使用相同的底层服务,包括用于部署流水线的 Cloud Build,以及用于容器映像存储和管理的 Container Registry 或 Artifact Registry。
使用 Google Cloud 的 Buildpack 时:
- 构建器和 Buildpack 已预先配置为处理构建流程并为您创建可运行的容器映像。
- Buildpack 支持多种编程语言,并且可以自动检测源代码中使用的语言。
- 您可以自定义和扩展 Buildpack 以安装其他系统依赖项。但是,默认构建器可以处理编程语言所需的常见任务,包括从语言的软件包仓库安装依赖项以及使用语言的通用依赖项文件。
使用 Buildpack 将代码容器化
Buildpack 可在本地或远程用于以下用途:
对于排除标准启动应用的编程语言,您可以使用 Procfile
来定义容器启动时要调用的进程。Procfile
可用于替换任何 Buildpack 类型的默认启动进程,但对于某些语言(包括 Python)来说是强制性的。