當建置未正確登錄且密鑰不存在時,建置失敗

建立並執行建置之後,您的建置未順利完成,您會收到一則訊息,指出未正確登錄建置,且密鑰不存在。

如果您收到一則訊息,指出建置未正確登錄,且密鑰不存在,則表示 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 指令來更新建置配置。 如果您要參照登錄密鑰,請在 build update 指令中使用 --registry-secret 選項來指定密鑰名稱。 如果您要參照 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>