分享方式:


針對 Azure Spring 應用程式中的常見組建問題進行疑難排解

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文適用於:❌基本/標準 ✔️ Enterprise

本文說明如何針對 Azure Spring Apps 部署的建置問題進行疑難解答。

建置結束代碼

Azure Spring Apps 企業版方案會使用 Tanzu Buildpacks 將應用程式原始碼轉換成映像。 如需詳細資訊,請參閱 Tanzu Buildpacks

當您使用 Azure CLI 在 Azure Spring Apps 中部署應用程式時,您會在 Azure CLI 控制台中看到組建記錄。 如果組建失敗,Azure Spring Apps 會在 CLI 控制台中顯示結束代碼和錯誤訊息,指出建置套件執行為何在組建套件 生命週期的不同階段失敗。

下列清單描述一些常見的結束代碼:

  • 20 - 所有 buildpack 群組都無法偵測到。

    請考慮下列結束代碼 20 的可能原因:

    • 您使用的建置器不支援您專案所使用的語言。

      如果您使用預設產生器,請檢查預設產生器支援的語言。 如需詳細資訊,請參閱如何設定 APM 整合和 CA 憑證支援的 APM 類型一節。

      如果您使用自定義建置器,請檢查自定義建置器的buildpack是否支援您使用的項目語言。

    • 您正針對錯誤的路徑執行;例如,Maven 專案的 pom.xml 檔案不在根路徑中。

      設定 BP_MAVEN_POM_FILE 為 指定專案 pom.xml 檔案的位置。

    • 您的應用程式發生問題;例如,您的.jar檔案沒有 /META-INF/MANIFEST。包含Main-Class專案的 MF 檔案。

  • 51 - Buildpack 建置錯誤。

    請考慮下列結束代碼 51 的可能原因:

    • 如果 Azure Spring Apps 在 Azure CLI 控制台中顯示錯誤訊息 Build failed in stage build with reason OOMKilled ,建置會因為記憶體不足而失敗。

      使用下列命令來使用 build-memory 環境變數來增加記憶體:

      az spring app deploy \
          --resource-group <your-resource-group-name> \
          --service <your-Azure-Spring-Apps-name> \
          --name <your-app-name> \
          --build-memory 3Gi
      
    • 建置因為應用程式原始程式碼錯誤而失敗;例如,您的原始程式碼中有編譯錯誤。

      請檢查組建記錄檔,找出根本原因。

    • 因為下載相依性錯誤,組建失敗;例如,網路問題導致 Maven 相依性下載失敗。

    • 建置失敗,因為 JDK 版本不受支援。 例如,JAR 檔案已使用非 Java LTS 版本進行編譯,組建套件不支援這些版本。 如需支援的版本,請參閱如何在 Azure Spring Apps Enterprise 方案中部署 Polyglot 應用程式的<部署 Java 應用程式>一節。

  • 62 - 無法將映射寫入 Azure Container Registry。

    請考慮下列可能導致結束代碼為 62 的原因:

    • 如果 Azure Spring Apps 在組建記錄檔中顯示錯誤訊息 Failed to write image to the following tags ,建置會因為網路問題而失敗。

      重試以修正問題。

如果您的應用程式是 Web 伺服器所提供的靜態檔案或動態前端應用程式,請參閱部署 Web 靜態檔案常見建置和部署錯誤一節。

下一步