勾點屬性

使用hooks區段在建置、部署和部署後階段執行殼層命令:

  • build — 在​ 封裝您的應用程式之前 ​執行命令。 資料庫或Redis等服務無法使用,因為應用程式尚未部署。 在​ 前新增自訂命令 ​預設的php ./vendor/bin/ece-tools命令,讓自訂產生的內容繼續進入部署階段。

  • deploy — 在​ 封裝並部署應用程式之後執行命令。 此時您可以存取其他服務。 由於預設php ./vendor/bin/ece-tools命令會將app/etc目錄複製到正確的位置,因此您必須在​ 部署命令之後新增自訂命令,以防止自訂命令失敗。

  • post_deploy — 在部署應用程式​ 之後執行命令,在​ 容器開始接受連線之後執行命令post_deploy掛接會清除快取並預先載入(加溫)快取。 您可以在Post部署階段中使用WARM_UP_PAGES變數來自訂頁面清單。 雖然不需要,但此變數可與SCD_ON_DEMAND環境變數搭配使用。

下列範例顯示.magento.app.yaml檔案中的預設組態。 在ece-tools命令之前​ builddeploypost_deploy區段 ​下新增CLI命令:

hooks:
    # We run build hooks before your application has been packaged.
    build: |
        set -e
        composer install
        php ./vendor/bin/ece-tools run scenario/build/generate.xml
        php ./vendor/bin/ece-tools run scenario/build/transfer.xml
    # We run deploy hook after your application has been deployed and started.
    deploy: |
        php ./vendor/bin/ece-tools run scenario/deploy.xml
    # We run post deploy hook to clean and warm the cache. Available with ECE-Tools 2002.0.10.
    post_deploy: |
        php ./vendor/bin/ece-tools run scenario/post-deploy.xml

此外,您也可以使用generatetransfer命令,在特別建置程式碼或移動檔案時執行其他動作,以進一步自訂建置階段。

hooks:
    # We run build hooks before your application has been packaged.
    build: |
        set -e
        php ./vendor/bin/ece-tools build:generate
        # php /path/to/your/script
        php ./vendor/bin/ece-tools build:transfer
  • set -e — 導致第一個失敗的命令上的掛接失敗,而不是最後一個失敗的命令。
  • build:generate — 如果針對建置階段啟用SCD,則套用修補程式、驗證組態、產生DI及產生靜態內容。
  • build:transfer — 將產生的程式碼和靜態內容傳輸到最終目的地。

命令從應用程式(/app)目錄執行。 您可以使用cd命令來變更目錄。 如果掛接中的最終命令失敗,掛接就會失敗。 若要使其在第一個失敗的命令上失敗,請將set -e新增至掛接的開頭。

若要使用grunt ​編譯Sass檔案:

dependencies:
    ruby:
        sass: "3.4.7"
    nodejs:
        grunt-cli: "~0.1.13"

hooks:
    build: |
        cd public/profiles/project_name/themes/custom/theme_name
        npm install
        grunt
        cd
        php ./vendor/bin/ece-tools build

在建置期間進行靜態內容部署之前,使用grunt編譯Sass檔案。 將grunt命令放在build命令之前。

NOTE
透過ECE-Tools 2002.1.0和更新版本,您可以使用情境式部署功能,在雲端基礎結構專案上自訂Adobe Commerce的建置、部署和後續部署程式。 請參閱以案例為基礎的部署
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26