构建容器映像
DevOps Insights 该服务将于 2026 年 8 月 31 日停止提供并终止。Continuous Delivery 将于 2027 年 2 月 12 日在以下区域停止提供:au-syd、ca-tor、us-east。 Code Risk Analyzer 也将于该日期在所有地区停止提供服务。 如果某个区域未实际使用这些功能,该区域内的相关功能可能会提前停用,并停止接受新实例。 了解更多
您可以使用经典管道或 Tekton 管道来构建容器映像。
经典管道
您可以使用经典管道通过 Container Registry 作业类型来构建容器映像。 此作业类型提供用于访问 IBM Cloud® Container Registry的上下文,并使用作业的 构建脚本 中的 Buildkit 命令。 多个工具链模板使用此脚本来构建容器映像。
不推荐使用 cr build 命令。 要将现有构建容器映像作业从 cr build 命令迁移到 Buildkit 命令,请编辑阶段属性并选择构建容器映像作业。
将源 build_image.sh 的行替换为 source <(curl -sSL "https://raw.githubusercontent.com/open-toolchain/commons/master/scripts/build_image_buildkit.sh")。 切换到使用此脚本时,必须为相应阶段提供新的 IBM_CLOUD_API_KEY 私钥环境变量。
此 API 密钥必须有权访问在其中构建映像的名称空间。 如果未提供 IBM_CLOUD_API_KEY 私钥环境变量,那么会在日志中显示 401 错误。
Tekton 管道
Continuous Delivery 服务包含多个 Tekton 任务,您可以在管道中引用这些任务来构建容器映像。 这些任务存储在 Open Toolchain Tekton Catalog中:
-
icr-containerize: 构建映像并将其推送到 IBM Cloud® Container Registry。 此任务依赖于 Buildkit 来构建容器映像。
-
icr-execute-in-dind: 针对作为侧柜容器运行的 Docker 引擎运行 Docker 命令 (例如构建和检查)。 然后,将生成的映像推送到 IBM Cloud® Container Registry。
-
icr-execute-in-dind-cluster: 针对在 Kubernetes 集群中运行的 Docker 引擎运行 Docker 命令,例如构建和检查。 如果 Docker DinD 在构建集群上不可用,那么将部署新的 Docker。 然后,将生成的映像推送到 IBM Cloud® Container Registry。
不推荐使用 cr build 命令。 如果使用此命令或从 icr-cr-build 任务引用此命令,那么可以迁移到 icr-containerize,icr-execute-in-dind或 icr-execute-in-dind-cluster Tekton 任务以构建容器映像。