針對 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 靜態檔案的常見建置和部署錯誤一節。