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.

  1. Führen Sie den Befehl ibmcloud ce buildrun get --name BUILDRUN_NAME aus, um die Details zu Ihrer Buildausführung anzuzeigen.
  2. Überprüfen Sie den Wert für Reason in der Befehlsausgabe.

Führen Sie die folgenden Schritte aus, um Ihnen bei der Behebung des Problems mit Ihrem Build zu helfen.

  1. Ü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 list aus, um alle geheimen Schlüssel in Ihrem Projekt aufzulisten, einschließlich der vorhandenen geheimen Registry-Schlüssel. Führen Sie den Befehl ibmcloud ce secret create --format registry aus, 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 list aus, 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 Befehl ibmcloud ce secret create --format ssh aus. Weitere Informationen zu geheimen SSH-Schlüsseln für den Zugriff auf Repositorys finden Sie unter Auf private Code-Repositorys zugreifen.
  2. Verwenden Sie nach dem Definieren der geheimen Schlüssel den Befehl ibmcloud ce build update zum Aktualisieren der Buildkonfiguration. Wenn Sie auf einen geheimen Registry-Schlüssel verweisen, geben Sie den Namen des geheimen Schlüssels mit der Option --registry-secret im Befehl build update an. 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-secret mit dem Befehl build update an. Beispiel:

    ibmcloud ce build update --name <BUILD_NAME> [--registry-secret <REGISTRY_ACCESS_SECRET>] [--git-repo-secret <GIT_REPO_SECRET>]
    
  3. Verwenden Sie den Befehl ibmcloud ce buildrun submit, um eine neue Buildausführung zu übergeben. Für den Befehl buildrun submit müssen Sie die Option --build angeben, um den Namen der Buildkonfiguration anzugeben. Optional können Sie auch die Option --name angeben, um den Namen für diese Buildausführung anzugeben. Wenn Sie die Option --name angeben, 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 Befehl ibmcloud ce buildrun delete gelöscht wurde. Beispiel:

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