Build schlägt fehl, wenn der Build nicht korrekt registriert wurde und ein geheimer Schlüssel nicht vorhanden ist.
Nachdem Sie einen Build erstellt und ausgeführt haben, wird der Build nicht erfolgreich abgeschlossen und Sie erhalten die Meldung, dass der Build nicht korrekt registriert ist und kein Geheimnis existiert.
Wenn Sie eine Nachricht empfangen, dass der Build nicht ordnungsgemäß registriert ist und ein geheimer Schlüssel nicht vorhanden ist, wurde der Build BUILD_NAME nicht ordnungsgemäß definiert.
Beispiel für eine Fehlernachricht
The Build is not registered correctly, build: <BUILD_NAME>, registered status: False, reason: SpecSourceSecretNotFound|SpecOutputSecretRefNotFound|MultipleSecretRefNotFound
Vom Build BUILD_NAME wird auf einen geheimen Schlüssel verwiesen, der nicht vorhanden ist. Lautet der Grund SpecOutputSecretRefNotFound, ist kein geheimer Registry-Schlüssel vorhanden. Wenn es sich um SpecSourceSecretNotFoundhandelt,
fehlt ein geheimer Schlüssel für den Zugriff auf das Git -Repository. Die Ursache lautet MultipleSecretRefNotFound wenn beide geheimen Schlüssel nicht vorhanden sind. Korrigieren Sie den Build so, dass auf vorhandene geheime Schlüssel
verwiesen wird.
Versuchen Sie eine der folgenden Lösungen.
Unabhängig davon, ob Sie Ihren Build in der Konsole oder in der CLI ausführen, verwenden Sie die CLI zur Fehlerbehebung bei Problemen mit Ihrem Build.
- Führen Sie den Befehl
ibmcloud ce buildrun get --name BUILDRUN_NAMEaus, um die Details zu Ihrer Buildausführung anzuzeigen. - Überprüfen Sie den Wert für
Reasonin der Befehlsausgabe.
Führen Sie die folgenden Schritte aus, um Ihnen bei der Behebung des Problems mit Ihrem Build zu helfen.
-
Überprüfen Sie die geheimen Schlüsseln. In einem Build werden geheime Schlüssel für die folgenden Zwecke verwendet:
- Zum Authentifizieren an einer Container-Registry. Ein geheimer Registry-Schlüssel speichert Berechtigungsnachweise für den Zugriff auf eine Container-Registry. Führen Sie den Befehl
ibmcloud ce secret listaus, um alle geheimen Schlüssel in Ihrem Projekt aufzulisten, einschließlich der vorhandenen geheimen Registry-Schlüssel. Führen Sie den Befehlibmcloud ce secret create --format registryaus, um einen geheimen Registry-Schlüssel zu erstellen. Weitere Informationen zu geheimen Registry-Schlüsseln finden Sie unter Zugriff auf eine private Container-Registry hinzufügen. - Zum Authentifizieren an einem privaten Quellcode-Repository. Ein geheimer SSH-Schlüssel speichert Berechtigungsnachweise für die Authentifizierung bei einem Service mit einem SSH-Schlüssel, wie z. B. die Authentifizierung bei einem Git -Repository,
wie z. B. GitHub oder GitLab. Führen Sie den Befehl
ibmcloud ce secret listaus, um alle geheimen Schlüssel in Ihrem Projekt aufzulisten, einschließlich vorhandener geheimer SSH-Schlüssel. Führen Sie zum Erstellen eines geheimen SSH-Schlüssels den Befehlibmcloud ce secret create --format sshaus. Weitere Informationen zu geheimen SSH-Schlüsseln für den Zugriff auf Repositorys finden Sie unter Auf private Code-Repositorys zugreifen.
- Zum Authentifizieren an einer Container-Registry. Ein geheimer Registry-Schlüssel speichert Berechtigungsnachweise für den Zugriff auf eine Container-Registry. Führen Sie den Befehl
-
Verwenden Sie nach dem Definieren der geheimen Schlüssel den Befehl
ibmcloud ce build updatezum Aktualisieren der Buildkonfiguration. Wenn Sie auf einen geheimen Registry-Schlüssel verweisen, geben Sie den Namen des geheimen Schlüssels mit der Option--registry-secretim Befehlbuild updatean. Wenn Sie auf einen geheimen SSH-Schlüssel verweisen, um auf ein privates Repository zuzugreifen, das den Quellcode für die Erstellung Ihres Container-Images enthält, geben Sie die Option--git-repo-secretmit dem Befehlbuild updatean. Beispiel:ibmcloud ce build update --name <BUILD_NAME> [--registry-secret <REGISTRY_ACCESS_SECRET>] [--git-repo-secret <GIT_REPO_SECRET>] -
Verwenden Sie den Befehl
ibmcloud ce buildrun submit, um eine neue Buildausführung zu übergeben. Für den Befehlbuildrun submitmüssen Sie die Option--buildangeben, um den Namen der Buildkonfiguration anzugeben. Optional können Sie auch die Option--nameangeben, um den Namen für diese Buildausführung anzugeben. Wenn Sie die Option--nameangeben, stellen Sie sicher, dass Sie für die Buildausführung einen anderen Namen als den Namen der fehlgeschlagenen Buildausführung verwenden; stellen Sie alternativ sicher, dass die fehlgeschlagene Buildausführung mit dem Befehlibmcloud ce buildrun deletegelöscht wurde. Beispiel:ibmcloud ce buildrun submit --build <BUILD_NAME> --name <BUILDRUN_NAME>