部署失敗並顯示「建置專案時發生錯誤:建置掛接失敗,狀態碼為1」
本文會討論Adobe Commerce雲端基礎結構問題的原因和解決方案,該問題指部署流程的建置階段失敗,且錯誤訊息摘要為: 「建置專案時發生錯誤:建置連結失敗,狀態碼為1」。
受影響的產品和版本
- 雲端基礎結構上的Adobe Commerce,所有版本
問題
要再現的步驟:
手動觸發部署,或透過執行環境的合併、推播或同步化來觸發。
預期結果:
已成功完成部署。
實際結果:
- 建置階段會失敗,且整個部署流程會卡住。
- 在部署錯誤記錄中,錯誤訊息結尾為: "建置專案時發生錯誤:建置掛接失敗,狀態碼為1。 已中止的組建"。
原因
環境建置失敗的原因有很多。 通常,在部署記錄中,您會看到長錯誤訊息,其中第一部分將更具體說明原因,結論為 「建置專案時發生錯誤:建置掛接失敗,狀態碼為1。 已中止的組建"。
進一步瞭解第一個問題特定部分,將有助於您識別問題。 以下是最常見的部分,下一節會提供解決方案:
- 沒有可用的儲存空間。
- ECE-Tools設定不正確。
- 您嘗試套用的修補程式與您的Adobe Commerce版本不相容,或與套用的其他修補程式或您的自訂內容發生衝突。
- 自訂模組程式碼的問題導致無法成功建置。
解決方案
- 檢查以確保有足夠的儲存空間。 有關如何檢查可用空間的資訊,請參閱使用CLI檢查雲端環境上的磁碟空間文章。 您可以考慮清除記錄目錄和/或增加磁碟空間。
- 請確定ECE-Tools已正確設定。
- 檢查問題是否由修補程式造成。 解決衝突或聯絡Adobe Commerce支援。 如需詳細資訊,請參閱下文。
- 檢查問題是否起因於自訂擴充功能。 解決衝突或聯絡擴充功能開發人員以取得解決方案。
以下段落提供一些更多詳細資訊。
清理記錄檔及/或增加空間
要考慮進行清理的目錄:
var/log
var/report
var/debug/
var
如需如何在雲端基礎結構入門計畫架構上的Adobe Commerce上增加磁碟空間的詳細資訊,請參閱增加雲端整合環境的磁碟空間。 相同的指示可用於在雲端基礎結構上增加Adobe Commerce的空間Pro規劃架構整合環境。 若為Pro Production/Staging,您必須向Adobe Commerce支援提交票證,並要求增加磁碟空間。 但受到Platform監視。 但是,通常您不必在Pro架構的測試/生產上處理這個問題,因為Adobe Commerce會監視這些引數,並警示您和/或根據合約採取動作。
請確定ECE-tools設定正確
-
請確定已在
magento.app.yaml
檔案中正確定義組建掛接。 如果您使用Adobe Commerce 2.2.X,建置勾點應依下列方式定義:code language-yaml # We run build hooks before your application has been packaged. build: | php ./vendor/bin/ece-tools build # We run deploy hook after your application has been deployed and started. deploy: | php ./vendor/bin/ece-tools deploy
使用升級至ece-tools文章作為參考。
-
執行下列命令,確定
composer.lock
檔案中有ECE-tools套件:code language-bash grep '"name": "magento/ece-tools"' composer.lock
若已指定,回應會類似於以下範例:
bash "name": "magento/ece-tools", "version": "2002.0.20",
請參閱升級至ece-tools文章以供參考。
此修補程式是否造成問題?
如果套用的修補程式導致環境無法成功建置,您會在部署記錄檔中看到類似下列的內容:
%patch_name%.composer.patch
[2019-02-19 18:12:59] CRITICAL:
....
[2019-02-19 18:12:59] CRITICAL: Command git apply --check --reverse /app/m2-hotfixes/%patch_name%.composer.patch returned code 1
...
W:
W: Command git apply --check --reverse /app/m2-hotfixes/%patch_name%.composer.patch returned code 1
W:
W:
W: build
...
E: Error building project: The build hook failed with status code 1. Aborted build.
這些錯誤訊息表示您嘗試套用的修補程式是針對其他Adobe Commerce版本建立的,或與您的自訂專案或先前套用的修補程式衝突。 請嘗試解決衝突或聯絡Adobe Commerce支援。
擴充功能是否造成問題?
如果自訂擴充功能導致環境無法成功建置,您會在部署記錄中看到自訂模組名稱,以及此模組造成的特定衝突。 解決衝突或聯絡擴充功能開發人員以取得解決方案。
確定已套用變更
提交並推送您的變更。 這將會自動觸發部署。