Hooks プロパティ

ビルド、デプロイ、デプロイ後のフェーズでシェルコマンドを実行するには、hooks セクションを使用します。

  • build - アプリケーションをパッケージ化する前に​ コマンドを実行します。 ​データベースやRedisなどのサービスは、アプリケーションがまだデプロイされていないため利用できません。 カスタム生成されたコンテンツがデプロイメントフェーズに進むように、カスタムコマンド before​をデフォルトのphp ./vendor/bin/ece-tools コマンドに追加します。

  • deploy - アプリケーションのパッケージ化とデプロイの後に​ コマンドを実行します。 ​この時点で他のサービスにアクセスできます。 既定のphp ./vendor/bin/ece-tools コマンドはapp/etc ディレクトリを正しい場所にコピーするため、カスタムコマンド after​をデプロイ コマンドに追加して、カスタムコマンドの失敗を防ぐ必要があります。

  • post_deploy - アプリケーションのデプロイ後​ コマンドを実行し、 ​後​コンテナが接続の受け入れを開始します。post_deploy フックはキャッシュをクリアし、キャッシュをプリロード (ウォーミング)します。 ​ デプロイ後ステージ ​WARM_UP_PAGES変数を使用して、ページのリストをカスタマイズできます。 これは必須ではありませんが、SCD_ON_DEMAND環境変数と連動して動作します。

次の例は、.magento.app.yaml ファイルのデフォルト設定を示しています。 ece-tools コマンドの​ ​のbuilddeployまたはpost_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

また、generateおよびtransfer コマンドを使用して、コードのビルドやファイルの移動を具体的に行う際に追加のアクションを実行することで、ビルド フェーズをさらにカスタマイズすることもできます。

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 ファイルをコンパイルします。 build コマンドの前にgrunt コマンドを配置します。

NOTE
ECE-Tools 2002.1.0以降では、シナリオベースのデプロイメント機能を使用して、Adobe Commerce on cloud infrastructure プロジェクトのビルド、デプロイ、デプロイ後のプロセスをカスタマイズできます。 ​ シナリオベースのデプロイメント ​を参照してください。
recommendation-more-help
commerce-on-cloud-help-cloud-guide