当构建未正确注册并且私钥不存在时,构建失败

创建并运行构建后,您的构建未成功完成,并且您接收到一条消息,表明该构建未正确注册并且不存在私钥。

如果接收到未正确注册构建且不存在私钥的消息,那么表示未正确定义 BUILD_NAME 构建。

示例错误消息

The Build is not registered correctly, build: <BUILD_NAME>, registered status: False, reason: SpecSourceSecretNotFound|SpecOutputSecretRefNotFound|MultipleSecretRefNotFound

BUILD_NAME 构建引用了不存在的私钥。 如果原因为 SpecOutputSecretRefNotFound,那么表示注册表私钥不存在。 如果是 SpecSourceSecretNotFound,那么缺少用于访问 Git 存储库的私钥。 如果两个私钥都不存在,那么原因为 MultipleSecretRefNotFound 。 请更正构建以引用现有私钥。

尝试其中一个解决方案。

无论您是在控制台还是 CLI 中运行构建,请使用 CLI 对构建问题进行故障诊断。

  1. 运行 ibmcloud ce buildrun get --name BUILDRUN_NAME 命令以显示构建运行的详细信息。
  2. 查看命令输出中的 Reason

请执行以下步骤以帮助您解决构建问题。

  1. 检查您的私钥。 在构建中,私钥用于以下目的:

  2. 定义私钥后,请使用 ibmcloud ce build update 命令来更新构建配置。 如果要引用注册表私钥,请通过将 --registry-secret 选项与 build update 命令配合使用来指定该私钥的名称。 如果要引用 SSH 私钥以访问包含用于构建容器映像的源代码的专用存储库,请使用 build update 命令指定 --git-repo-secret 选项。 例如

    ibmcloud ce build update --name <BUILD_NAME> [--registry-secret <REGISTRY_ACCESS_SECRET>] [--git-repo-secret <GIT_REPO_SECRET>]
    
  3. 使用 ibmcloud ce buildrun submit 命令来提交新的构建运行。 对于 buildrun submit 命令,必须指定 --build 选项以提供构建配置的名称。 您可以选择指定 --name 选项以提供此构建运行的名称。 如果指定 --name 选项,请确保使用与失败的构建运行不同的构建运行名称,或者确保使用 ibmcloud ce buildrun delete 命令删除失败的构建运行。 例如

    ibmcloud ce buildrun submit --build <BUILD_NAME> --name <BUILDRUN_NAME>