ビルドの登録が誤っておりシークレットが存在しない場合のビルドの失敗
ビルドを作成して実行すると、ビルドが正常に完了せずに、ビルドの登録が誤っておりシークレットが存在しないというメッセージを受け取ります。
ビルドが正しく登録されておらず、シークレットが存在しないメッセージを受け取る場合、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 を使用してください。
ibmcloud ce buildrun get --name BUILDRUN_NAMEコマンドを実行して、ビルド実行の詳細を表示します。- コマンド出力の
Reasonを確認します。
ビルドの問題を解決するのに役立つ以下の手順を実行してください。
-
シークレットを確認します。 ビルドでは、シークレットは以下の目的で使用されます。
- コンテナー・レジストリーで認証を行います。 レジストリー・シークレットは、コンテナー・レジストリーにアクセスするための資格情報を保管します。 既存のレジストリー・シークレットを含め、プロジェクト内のすべてのシークレットをリストするには、
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 シークレットについて詳しくは、 プライベート・コード・リポジトリーへのアクセスを参照してください。
- コンテナー・レジストリーで認証を行います。 レジストリー・シークレットは、コンテナー・レジストリーにアクセスするための資格情報を保管します。 既存のレジストリー・シークレットを含め、プロジェクト内のすべてのシークレットをリストするには、
-
シークレットを定義した後、
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>] -
ibmcloud ce buildrun submitコマンドを使用して、新しいビルドを実行依頼します。buildrun submitコマンドには、--buildオプションを指定して、ビルド構成の名前を指定する必要があります。 必要に応じて、--nameオプションを指定して、そのビルド実行の名前を指定することもできます。--nameオプションを指定した場合は、必ず、失敗したビルド実行とは異なるビルド実行名を使用するか、失敗したビルド実行をibmcloud ce buildrun deleteコマンドを使用して削除してください。 以下に例を示します。ibmcloud ce buildrun submit --build <BUILD_NAME> --name <BUILDRUN_NAME>