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 コマンドの 前 のbuild、deployまたは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 コマンドを配置します。