IBM Cloud Docs
规划构建

规划构建

在开始使用 IBM Cloud® Code Engine 构建镜像之前,请先了解构建过程中可用的不同选项。

构建或映像构建是一种可用于从源代码创建容器映像的机制。Code Engine 支持从 Dockerfile 和 Cloud Native Buildpack 进行构建。

若您在容器注册表中存有基于非英特尔处理器构建的镜像,Code Engine 将无法运行该容器镜像。Code Engine 采用英特尔架构处理器。 若使用英特尔处理器( x86 处理器),您可自行构建镜像。 您也可以选择让 Code Engine 为您处理构建过程。

Code Engine 提供定制资源定义 (CRD) 方法。 有关更多信息,请参阅 Source-to-image CRD 方法

准备源位置

要让 Code Engine 访问您的源代码,您需要将其放置在 Git 存储库中,或存放在本地工作站的可访问位置。

Git 存储库
将代码存储在 Git 存储库中,例如在 GitHubGitLab中。 您的代码可以位于存储库的顶级或子目录中。 如果源存储库不是公共存储库,那么必须添加 对 Code Engine 的访问权。
本地工作站
将代码存储在本地工作站上。 提交从本地目录中提取代码的构建时,源代码将打包到归档文件中,并上载到 IBM Cloud Container Registry 实例。 将在与构建映像相同的名称空间中创建源映像。 请注意,只能将 IBM Cloud Container Registry 作为本地构建的目标。 您可以选择通过使用 .ceignore 文件来忽略源代码中的某些文件模式,该文件的行为类似于 .gitignore 文件。 例如,node.js 应用程序的 .ceignore 文件的条目可能包括 node_modules.npm。 有关要忽略的更多样本文件模式,请参阅 GitHub.gitignore 存储库

选择构建策略

Code Engine 可以使用下列其中一个策略来构建容器映像。

Dockerfile

使用 BuildKit 工具的 Dockerfile 构建。 要使用此策略,请将 Dockerfile 添加到源存储库。 此 Dockerfile 描述从源存储库构建容器映像所需的步骤。 例如,Dockerfile 可能包含将静态文件从源复制到要由 Web Service 托管的容器的步骤。 它可以编译以您选择的语言编写的源代码,并将生成的二进制文件添加到容器映像。 有关 Dockerfile 构建的更多信息,请参阅 为 Code Engine

当您从 Docker Hub提取镜像用于 Code Engine 中的应用或作业时,请注意 Docker 对免费计划(未认证)用户的速率限制。 如果您收到 429 错误,指示您已达到拉取速率限制,那么可能会迂到拉取限制。 要提高速率限制,您可以将账户升级为 DockerProTeam 订阅服务。

云本机 buildpack

云本机 buildpack,使用 Paketo 来检查源存储库,并检测代码所基于的运行时环境以及如何从源构建容器映像。 Buildpack 会对源存储库的目录结构进行假定。 有关如何正确构造源存储库的更多信息,请参阅为运行时提供的样本。

运行时样本文件
运行时 版本 样本
执行 1.24.11 Go 样本
Java 21.0.9 Java 样本
Node.js 24.13.0 Node.js 样本
PHP 8.1.28 PHP 样本
Python 3.11.14 Python 样本
Ruby 3.1.7 Ruby 样本
.NET Core 9.0.308 (.NET Core SDK),
9.0.11 (.NET Core 运行时)
。NET Core 样本

使用 Cloud Native Buildpack 构建的映像不再使用 Jan, 1st 1980 的中立时间戳记作为其映像创建时间戳记。 输入源的时间戳将作为图像创建时间戳使用;例如,用于构建的提交所对应的 Git 提交时间戳。

当更新版本的构建包向各个 IBM Cloud 区域部署时,特定构建包的运行时版本在不同区域之间可能存在短暂差异。

确定构建的大小

Code Engine 将构建分类为 smallmediumlargexlargexxlarge 大小。 构建的大小定义如何将 CPU 核心,内存和磁盘空间分配给构建。 较小的构建成本较低,但通常也较慢,因为它使用的 CPU 核心较少。 此外,您的构建的内存和磁盘需求可能会导致构建失败,其大小较小。

构建大小值。
大小 Dockerfile buildpack
small
  • CPU 0.5
  • 内存 2 GB
  • 磁盘 2 GB
  • CPU 0.5
  • 内存 2 GB
  • 磁盘 2 GB
medium
  • CPU 1
  • 内存 4 GB
  • 磁盘 4 GB
  • CPU 1
  • 内存 4 GB
  • 磁盘 4 GB
large
  • CPU 2
  • 内存 8 GB
  • 磁盘 8 GB
  • CPU 2
  • 内存 8 GB
  • 磁盘 8 GB
xlarge
  • CPU 4
  • 内存 16 GB
  • 磁盘 16 GB
  • CPU 4
  • 内存 16 GB
  • 磁盘 16 GB
xxlarge
  • CPU 12
  • 内存 48 GB
  • 磁盘 48 GB
  • CPU 12
  • 内存 48 GB
  • 磁盘 48 GB

如果不确定要选择的大小,请考虑从 smallmedium 开始。 如果由于缺少内存或磁盘空间而导致构建失败,或者构建速度不够快,请切换到更大的大小。

选择容器映像注册表

Code Engine 从 Git 存储库或本地目录中提取源代码,构建源代码,然后将映像推送 (上载) 到容器映像注册表。

您可以将 存储库用于公共或专用的源注册表用于容器映像。 您还可以选择使用注册表私钥为构建输出指定注册表详细信息,也可以选择 Code Engine 以通过 自动访问 为您从源构建映像并将该映像存储在 IBM Cloud Container Registry 中。

选择构建方法

在以下构建选项中,Code Engine 从 Git 存储库或本地目录中提取源代码,构建容器映像,然后将容器映像推送 (上载) 到注册表。 您可以从公共或专用 存储库注册表 中进行选择。 如果您的注册表是专用注册表,请使用注册表私钥为具有 用户提供的访问权的构建输出指定注册表详细信息。 或者,您可以为 Code Engine 选择创建访问权,以通过 自动访问将映像存储在 IBM Cloud Container Registry 中。

创建构建配置

在此场景中,Code Engine 为构建创建配置。

创建构建配置不会创建映像,而是会创建用于构建映像的配置。 您可以通过运行构建从配置创建映像。 在运行构建之前,不会验证构建配置或使用构建配置来创建映像。 构建配置支持映像的多个后续构建,例如,将更改应用于源存储库时。

有关更多信息,请参阅以下主题。

创建构建配置后,可以 运行该配置

使用独立构建命令创建容器映像

要了解如何使用单个 Code Engine CLI 命令构建容器映像并在不创建可复用构建配置的情况下创建容器映像,请参阅 使用独立构建命令(CLI)构建容器映像

构建代码并创建工作负载

从本地源代码创建工作负载时,源代码将打包到归档文件中,并上载到帐户中 IBM Cloud Container Registry 实例内的受管名称空间。 该映像也存储在此同一名称空间中。

要构建代码并使用单个操作创建工作负载,请参阅以下主题。

Git 存储库
本地文件

构建的后续步骤

要查找更多代码示例吗? 查看 IBM Cloud Code Engine 的示例代码 GitHub 代码库。