ビルドの登録が誤っておりシークレットが存在しない場合のビルドの失敗

ビルドを作成して実行すると、ビルドが正常に完了せずに、ビルドの登録が誤っておりシークレットが存在しないというメッセージを受け取ります。

ビルドが正しく登録されておらず、シークレットが存在しないメッセージを受け取る場合、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. シークレットを確認します。 ビルドでは、シークレットは以下の目的で使用されます。

    • コンテナー・レジストリーで認証を行います。 レジストリー・シークレットは、コンテナー・レジストリーにアクセスするための資格情報を保管します。 既存のレジストリー・シークレットを含め、プロジェクト内のすべてのシークレットをリストするには、 ibmcloud ce secret list コマンドを実行します。 レジストリー・シークレットを作成するには、 ibmcloud ce secret create --format registry コマンドを実行します。 レジストリー・シークレットについて詳しくは、 プライベート・コンテナー・レジストリーへのアクセス権限の追加を参照してください。
    • プライベート・ソース・コード・リポジトリーで認証を行います。 SSH 秘密鍵は、 GitHub や GitLabなどの Git リポジトリーに対する認証など、SSH 鍵を使用してサービスに対して認証するための資格情報を保管します。 既存の SSH シークレットを含め、プロジェクト内のすべてのシークレットをリストするには、 ibmcloud ce secret list コマンドを実行します。 SSH シークレットを作成するには、 ibmcloud ce secret create --format ssh コマンドを実行します。 リポジトリーにアクセスするための SSH シークレットについて詳しくは、 プライベート・コード・リポジトリーへのアクセスを参照してください。
  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>