Debugging von Builds

Verwenden Sie die Tipps zur Fehlerbehebung, um zu erfahren, wie Sie IBM Cloud® Code Engine Builds und Ausführungen Ihres Builds beheben können.

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.

Wenn sich Ihr Build nicht erwartungsgemäß verhält, können bei der Suche nach Protokollen und Systemereignissen Informationen bereitgestellt werden, die Ihnen bei der Behebung des Problems helfen können.

Grenzwerte für die Prüfung

Die maximale Anzahl der Buildkonfigurationen, die pro Projekt pro Projekt ausgeführt werden können, ist 100. Sie sind auf insgesamt 100 Bauausführungen pro Projekt beschränkt, bevor Sie alte erstellen oder bereinigen müssen.

Weitere Informationen zu Begrenzungen für Builds einschließlich Speicher und cpu finden Sie unter Grenzwerte und Kontingente für Code Engine.

Über die CLI können Sie den Befehl ibmcloud ce project get verwenden, um Informationen zu Grenzwerten und zur aktuellen Nutzung anzuzeigen. Zum Beispiel:

ibmcloud ce project get --name myproject

Beispielausgabe

Getting project 'myproject'...
OK
Name:                                      myproject
ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
Status:                                    active
Enabled:                                   true
Application Private Visibility Supported:  true
Selected:                                  true
Region:                                    us-south
Resource Group:             default
Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
Age:                        52d
Created:                                   Tue, 28 Sep 2021 05:12:16 -0500
Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500
Quotas:
Category                                  Used  Limit
App revisions                             2    120
Apps                                      1     40
Build runs                                1     100
Builds                                    2     100
Configmaps                                2     100
CPU                                       0     128
Ephemeral storage                         0     512G
Functions                                 0     20
Instances (active)                        0     250
Instances (total)                         0     2500
Job runs                                 13     100
Jobs                                      2     100
Memory                                    0     512G
Secrets                                   6     100
Subscriptions (cron)                      0     100
Subscriptions (IBM Cloud Object Storage)  0     100
Subscriptions (Kafka)                     0     100

Protokolle für meine Builds abrufen

Protokolle können hilfreich sein, um Probleme bei der Ausführung von Builds zu beheben. Protokolle für Builds können Sie über die Befehlszeilenschnittstelle oder die Konsole anzeigen.

Protokolle für eigene Builds über die Konsole abrufen

Sie können Protokolle für bestimmte Instanzen von Buildausführungen über die Konsole anzeigen.

  1. Rufen Sie das Code Engine-Dashboard auf.
  2. Wählen Sie ein Projekt aus (oder erstellen Sie ein Projekt).
  3. Klicken Sie auf der Projektseite auf Image-Builds.
  4. Klicken Sie auf der Registerkarte Image-Build auf den Namen Ihres Image-Builds, um die Erstellungsseite für einen definierten Build zu öffnen, oder erstellen Sie einen Build.
  5. Klicken Sie auf der Buildseite für Ihren definierten Build im Abschnitt Buildausführungen auf den Namen der Instanz Ihrer Buildausführung. Möglicherweise müssen Sie auf Build übergeben klicken, um eine Buildausführung zu erstellen.
  6. Auf der Seite für die Instanz der Buildausführung können Sie die Informationen zum Buildprotokoll anzeigen. Erweitern Sie die jeweiligen Buildschritte, um detaillierte Protokollinformationen anzuzeigen.

Weitere Informationen finden Sie unter Buildprotokolle über die Konsole anzeigen.

Protokolle für eigene Builds über die Befehlszeilenschnittstelle abrufen

Verwenden Sie den Befehl ibmcloud ce buildrun logs um Protokolle über die Buildausführung anzuzeigen. Verwenden Sie diesen Befehl, um Protokolle aller Instanzen einer Buildausführung basierend auf dem Namen der Buildausführung anzuzeigen.

Wenn Sie die Protokolle für alle Instanzen der Buildausführung mybuildrun anzeigen möchten, geben Sie den Namen der Buildausführung mit der Option --name an; Beispiel:

ibmcloud ce buildrun logs --name mybuildrun

Beispielausgabe

Getting build run 'mybuildrun'...
Getting instances of build run 'mybuildrun'...
Getting logs for build run 'mybuildrun'...
OK
mybuildrun-bvzbg-pod-tppvg/step-source-default:
2021/09/21 09:39:08 Info: ssh (/usr/bin/ssh): OpenSSH_8.0p1, OpenSSL 1.1.1g FIPS  21 Apr 2020
2021/09/21 09:39:08 Info: git (/usr/bin/git): git version 2.27.0
2021/09/21 09:39:08 Info: git-lfs (/usr/bin/git-lfs): git-lfs/2.11.0 (GitHub; linux amd64; go 1.14.4)
2021/09/21 09:39:08 /usr/bin/git clone --quiet --no-tags --branch main --depth 1 --single-branch -- https://github.com/IBM/CodeEngine /workspace/source
2021/09/21 09:39:09 /usr/bin/git -C /workspace/source submodule update --init --recursive --depth 1
2021/09/21 09:39:10 /usr/bin/git -C /workspace/source rev-parse --abbrev-ref HEAD
2021/09/21 09:39:10 Successfully loaded https://github.com/IBM/CodeEngine (main) into /workspace/source
2021/09/21 09:39:10 /usr/bin/git -C /workspace/source rev-parse --verify HEAD
mybuildrun-bvzbg-pod-tppvg/step-build-and-push:
INFO[0000] Retrieving image manifest golang:alpine
INFO[0000] Retrieving image golang:alpine from registry index.docker.io
INFO[0001] Retrieving image manifest alpine
INFO[0001] Retrieving image alpine from registry index.docker.io
INFO[0003] Built cross stage deps: map[0:[/codeengine]]
INFO[0003] Retrieving image manifest golang:alpine
INFO[0003] Returning cached image manifest
INFO[0003] Executing 0 build triggers
INFO[0003] Unpacking rootfs as cmd COPY ./helloworld /helloworld requires it.
INFO[0009] COPY ./helloworld /helloworld
INFO[0009] Taking snapshot of files...
INFO[0009] COPY codeengine.go /
INFO[0009] Taking snapshot of files...
INFO[0009] RUN go build -o /codeengine /codeengine.go
INFO[0009] Taking snapshot of full filesystem...
INFO[0017] cmd: /bin/sh
INFO[0017] args: [-c go build -o /codeengine /codeengine.go]
INFO[0017] Running: [/bin/sh -c go build -o /codeengine /codeengine.go]
INFO[0018] Taking snapshot of full filesystem...
INFO[0018] Saving file codeengine for later use
INFO[0018] Deleting filesystem...
INFO[0019] Retrieving image manifest alpine
INFO[0019] Returning cached image manifest
INFO[0019] Executing 0 build triggers
INFO[0019] Unpacking rootfs as cmd COPY --from=0 /codeengine /codeengine requires it.
INFO[0019] COPY --from=0 /codeengine /codeengine
INFO[0019] Taking snapshot of files...
INFO[0019] CMD /codeengine
INFO[0019] Pushing image to us.icr.io/acme-namespace/codeengine-sample
INFO[0023] Pushed image to 1 destinations

Systemereignissaten für meine Builds abrufen

Systemereignisidaten können bei der Fehlersuche in Builds hilfreich sein. Sie können Systemereignisinformationen für Builds mit der CLI anzeigen.

  1. Verwenden Sie den Befehl ibmcloud ce buildrun list, um alle Buildausführungen in einem Projekt aufzulisten, zum Beispiel:

    ibmcloud ce buildrun list  
    
  2. Verwenden Sie den Befehl ibmcloud ce buildrun get, um beispielsweise die Details eines Build-Laufs abzurufen,

    ibmcloud ce buildrun get --name mybuildrun  
    

    Beispielausgabe

    Getting build run 'mybuildrun'...
    Run 'ibmcloud ce buildrun events -n mybuildrun' to get the system events of the build run.
    Run 'ibmcloud ce buildrun logs -f -n mybuildrun' to follow the logs of the build run.
    OK
    Name:          mybuilddrun
    [...]
    Created:       2021-06-01T11:43:24-04:00
    Summary:  Succeeded
    Status:   Succeeded
    Reason:   All Steps have completed executing
    Image:  us.icr.io/mynamespace/codeengine-codeengine-200
    

    Wenn Sie differenziertere Details zu Ihrer Buildausführung wünschen, verwenden Sie die Option --o yaml im Befehl buildrun get, z. B. ibmcloud ce buildrun get --name myapp --o yaml. Diese Option ist nützlich, um detailliertere Informationen in der Befehlszeilenschnittstelle für die Build-Ausführung anzuzeigen.

  3. Zeigen Sie die Systemereignisse Ihrer Buildausführung an. Verwenden Sie den Befehl ibmcloud ce buildrun events, zum Beispiel,

    ibmcloud ce buildrun events --name mybuildrun
    

    Beispielausgabe

    Getting build run 'mybuildrun'...
    Getting instances of build run 'mybuildrun'...
    Getting events for build run 'mybuildrun'...
    OK
    mybuildrun-bvzbg-pod-tppvg:
        Type    Reason     Age    Source                Messages
        Normal  Scheduled  4m43s  default-scheduler     Successfully assigned 62ckpsxlh7x/mybuildrun-bvzbg-pod-tppvg to 10.242.0.17
        Normal  Pulled     4m42s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/tekton-pipeline/entrypoint-bff0a22da108bc2f16c818c97641a296:v0.23.0-rc6@sha256:43dd56a6c7c10f80300a861615f6f8d91c026deba744f81553a4e536b301b322" already present on machine
        Normal  Created    4m42s  kubelet, 10.242.0.17  Created container place-tools
        Normal  Started    4m41s  kubelet, 10.242.0.17  Started container place-tools
        Normal  Pulled     4m40s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/git:v0.8.100" already present on machine
        Normal  Created    4m40s  kubelet, 10.242.0.17  Created container step-source-default
        Normal  Started    4m40s  kubelet, 10.242.0.17  Started container step-source-default
        Normal  Pulled     4m40s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/buildkit/builder:v0.9.0-rc.19" already present on machine
        Normal  Created    4m40s  kubelet, 10.242.0.17  Created container step-build-and-push
        Normal  Started    4m40s  kubelet, 10.242.0.17  Started container step-build-and-push
    

    Ereignisse werden nur für eine Stunde im System gespeichert.