對自動構建進行故障排除

注意

自動構建需要 Docker Pro、Team 或 Business 訂閱.

構建失敗

如果構建失敗,重試圖示將顯示在常規構建選項卡上的構建報告行旁邊。構建報告頁面和時間軸日誌也顯示一個重試按鈕。

Timeline view showing the retry build button

注意

如果你正在檢視屬於組織的程式碼庫的構建詳細資訊,取消重試按鈕僅在你對程式碼庫具有讀寫訪問許可權時才會顯示。

自動構建的執行時間限制為 4 小時。如果構建達到此時間限制,它將自動取消,並且構建日誌將顯示以下訊息

2022-11-02T17:42:27Z The build was cancelled or exceeded the maximum execution time.

此日誌訊息與你主動取消構建時的日誌訊息相同。要確定構建是否被自動取消,請檢查構建持續時間。

構建包含連結的私有子模組的程式碼庫

Docker Hub 在你的原始碼庫中設定了一個部署金鑰,使它能夠克隆程式碼庫並構建它。此金鑰僅適用於單個特定程式碼庫。如果你的原始碼庫使用私有 Git 子模組,或者需要你克隆其他私有程式碼庫才能構建,則 Docker Hub 無法訪問這些附加程式碼庫,你的構建無法完成,並且會在構建時間軸中記錄錯誤。

要解決此問題,你可以使用SSH_PRIVATE環境變數設定自動構建,以覆蓋部署金鑰並授予 Docker Hub 的構建系統訪問程式碼庫的許可權。

注意

如果你正在為團隊使用自動構建,請改為使用以下過程,併為你的原始碼提供者配置一個服務使用者。你也可以為個人帳戶執行此操作,以限制 Docker Hub 對你的原始碼庫的訪問許可權。

  1. 生成一個僅用於構建的 SSH 金鑰對,並將公鑰新增到你的原始碼提供者帳戶。

    此步驟是可選的,但允許你撤銷僅用於構建的金鑰對,而無需刪除其他訪問許可權。

  2. 將金鑰對的私鑰部分複製到剪貼簿。

  3. 在 Docker Hub 中,導航到包含連結的私有子模組的程式碼庫的構建頁面。(如果需要,請按照此處的步驟配置自動構建。)

  4. 在螢幕底部,選擇構建環境變數旁邊的加號圖示。

  5. 輸入SSH_PRIVATE作為新環境變數的名稱。

  6. 將金鑰對的私鑰部分貼上到欄位中。

  7. 選擇儲存儲存並構建以驗證構建現在是否已完成。

注意

你必須使用 SSH 上的 git clone 配置你的私有 git 子模組(git@submodule.tld:some-submodule.git),而不是 HTTPS。