建置除錯

請參考這些疑難排解提示,了解如何針對您的 IBM Cloud® Code Engine 建置及執行程序進行疑難排解。

不論您是在主控台或 CLI 中執行建置,請使用 CLI 來疑難排解您的建置問題。

  1. 執行 ibmcloud ce buildrun get --name BUILDRUN_NAME 指令,以顯示建置執行的詳細資料。
  2. 檢閱指令輸出中的 Reason。

當您建置的行為不符合預期時,查看日誌和系統事件可以提供資訊來協助您對問題進行除錯。

要考量的建置限制

每個專案可以擁有的建置配置數目上限為 100。 在您需要移除或清除舊專案之前,每個專案的建置執行總數限制為 100 個。

如需包括記憶體和 CPU 之建置限制的相關資訊,請參閱 Code Engine。

使用 CLI,您可以使用 ibmcloud ce project get 指令來顯示限制及現行使用情形的相關資訊。 例如:

ibmcloud ce project get --name myproject

輸出範例

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

取得我的建置的日誌

當您執行建置時,日誌有助於疑難排解問題。 您可以使用 CLI 或主控台來檢視建置的日誌。

從主控台取得我的建置的日誌

您可以從主控台顯示特定建置執行實例的日誌。

  1. 移至 Code Engine 儀表板。
  2. 選取專案 (或 建立一個)。
  3. 從專案頁面中,按一下 映像檔建置。
  4. 從 映像檔建置 標籤中,按一下映像檔建置的名稱,以開啟所定義建置的建置頁面,或 建立建置。
  5. 從您所定義建置的建置頁面中,按一下 建置執行 區段中的建置執行實例名稱。 您可能需要按一下 提交建置,以建立建置執行。
  6. 從建置執行實例頁面中,您可以檢視建置日誌資訊。 展開特定的建置步驟,以取得詳細記載資訊。

如需相關資訊,請參閱 從主控台檢視建置日誌。

使用 CLI 取得我的建置的日誌

使用 ibmcloud ce buildrun logs 指令來顯示建置執行的相關日誌。 請使用這個指令,根據建置執行的名稱來顯示建置執行所有實例的日誌。

如果要檢視 mybuildrun 建置執行的所有實例的日誌,請使用 --name 選項指定建置執行的名稱; 例如,

ibmcloud ce buildrun logs --name mybuildrun

輸出範例

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

取得我的建置的系統事件資訊

當您執行建置時,系統事件資訊有助於疑難排解問題。 您可以使用 CLI 來檢視建置的系統事件資訊。

  1. 使用 ibmcloud ce buildrun list 指令來列出專案中的所有建置執行; 例如,

    ibmcloud ce buildrun list  
    
  2. 使用 ibmcloud ce buildrun get 指令來取得建置執行的詳細資料,例如:

    ibmcloud ce buildrun get --name mybuildrun  
    

    輸出範例

    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
    

    如果您想要更精細的建置執行詳細資料,請在 buildrun get 指令中使用 --o yaml 選項; 例如 ibmcloud ce buildrun get --name myapp --o yaml。 此選項有助於在 CLI 中顯示建置執行的更詳細資訊。

  3. 顯示本次建置執行過程中的系統事件。 使用 ibmcloud ce buildrun events 指令; 例如,

    ibmcloud ce buildrun events --name mybuildrun
    

    輸出範例

    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
    

    事件只會在系統中儲存一小時。