Depurando construções

Use as dicas de resolução de problemas para aprender a solucionar problemas de construções do IBM Cloud® Code Engine e execuções de sua construção.

Se você está executando sua construção no console ou na CLI, use a CLI para solucionar problemas em sua construção.

  1. Execute o comando ibmcloud ce buildrun get --name BUILDRUN_NAME para exibir os detalhes de sua execução de construção.
  2. Revise a Reason na saída de comando.

Quando a sua construção não está se comportando como o esperado, a análise dos logs e eventos do sistema pode fornecer informações que podem ajudá-lo a depurar o problema.

Limites de construção a considerar

O número máximo de configurações de construção que você pode ter por projeto é 100. Você está limitado a um total de 100 execuções de construção por projeto antes de precisar remover ou limpar as antigas.

Para obter mais informações sobre limites para construções, incluindo memória e CPU, consulte Limites e cotas para Code Engine.

Com a CLI, é possível usar o comando ibmcloud ce project get para exibir informações sobre limites e uso atual. Por exemplo:

ibmcloud ce project get --name myproject

Saída de exemplo

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

Obtendo logs para minhas construções

Os logs podem ser úteis para solucionar problemas quando você executa construções. É possível visualizar os registros das construções com a CLI ou o com o console.

Obtendo logs para minhas construções a partir do console

É possível exibir logs para instâncias específicas de execução de construção a partir do console.

  1. Acesse o painel do Code Engine.
  2. Selecione um projeto (ou crie um).
  3. Na página de projeto, clique em Construções de imagem.
  4. Na guia Compilação de imagem, clique no nome de sua compilação de imagem para abrir a página de compilação para uma compilação definida, ou crie uma compilação
  5. A partir da página de construção para sua construção definida, clique no nome da instância de sua execução de construção na seção Execuções de construção. Poderá ser necessário clicar em Enviar construção para criar uma execução de construção.
  6. A partir da página de instância de execução de construção, é possível visualizar as informações do log de construção. Expanda as etapas específicas de construção para obter informações detalhadas da criação de log.

Para obter mais informações, consulte visualizando logs de construção do console.

Obtendo logs para minhas construções com a CLI

Use o comando ibmcloud ce buildrun logs para exibir logs sobre a execução da construção. Use este comando para exibir logs de todas as instâncias de uma execução de compilação com base no nome da execução da compilação.

Para visualizar os logs para todas as instâncias da execução de compilação mybuildrun, especifique o nome da execução de compilação com a opção --name; por exemplo,

ibmcloud ce buildrun logs --name mybuildrun

Saída de exemplo

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

Obtendo informações do evento do sistema para minhas construções

As informações do evento do sistema podem ser úteis para solucionar problemas quando você executa construções. É possível visualizar informações do evento do sistema para construções com a CLI.

  1. Use o comando ibmcloud ce buildrun list para listar todas as suas execuções de compilação em um projeto; por exemplo,

    ibmcloud ce buildrun list  
    
  2. Use o comando ibmcloud ce buildrun get para obter os detalhes de sua execução de construção, por exemplo,

    ibmcloud ce buildrun get --name mybuildrun  
    

    Saída de exemplo

    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
    

    Se você quiser maior detalhamento sobre a sua execução de compilação, use a opção --o yaml com o comando buildrun get; por exemplo, ibmcloud ce buildrun get --name myapp --o yaml. Esta opção é útil para mostrar informações mais detalhadas na CLI para a execução de compilação.

  3. Exiba os eventos do sistema de sua execução de construção. Use o comando ibmcloud ce buildrun events, por exemplo,

    ibmcloud ce buildrun events --name mybuildrun
    

    Saída de exemplo

    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
    

    Os eventos são armazenados apenas por uma hora no sistema.