自動建置問題排查

注意

自動建置需要 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@submodule.tld:some-submodule.git` ) 而不是 HTTPS 來設定您的私有 git 子模組。