Hooks-Eigenschaft
Verwenden Sie den Abschnitt hooks
, um Shell-Befehle während der Build-, Bereitstellungs- und Nachbereitstellungsphasen auszuführen:
-
build
- Führt Befehle aus bevor Anwendung verpackt wird. Dienste wie die Datenbank oder Redis sind nicht verfügbar, da die Anwendung noch nicht bereitgestellt wurde. Fügen Sie benutzerdefinierte Befehle vor dem Standardbefehlphp ./vendor/bin/ece-tools
hinzu, damit benutzergenerierter Inhalt in der Bereitstellungsphase fortgesetzt wird. -
deploy
: Ausführen von Befehlen nach Verpacken und Bereitstellen der Anwendung. An dieser Stelle können Sie auf andere Dienste zugreifen. Da der standardmäßigephp ./vendor/bin/ece-tools
-Befehl dasapp/etc
an den richtigen Speicherort kopiert, müssen Sie () Bereitstellungsbefehl benutzerdefinierte Befehle hinzufügen, um Fehler bei benutzerdefinierten Befehlen zu vermeiden. -
post_deploy
- Führt Befehle aus nachdem Anwendung bereitgestellt wurde und danach beginnt der Container Verbindungen zu akzeptieren. Derpost_deploy
-Hook löscht den Cache und lädt den Cache vorab (erwärmt). Sie können die Liste der Seiten mithilfe derWARM_UP_PAGES
Variable im Phase nach der Bereitstellung“. Dies ist zwar nicht erforderlich, funktioniert aber zusammen mit der UmgebungsvariablenSCD_ON_DEMAND
.
Das folgende Beispiel zeigt die Standardkonfiguration in der .magento.app.yaml
. Fügen Sie CLI-Befehle unter den Abschnitten build
, deploy
oder post_deploy
() ece-tools
Befehl hinzu:
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
Außerdem können Sie die Build-Phase weiter anpassen, indem Sie die Befehle generate
und transfer
verwenden, um zusätzliche Aktionen speziell beim Erstellen von Code oder beim Verschieben von Dateien durchzuführen.
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
- verursacht, dass Hooks beim ersten fehlgeschlagenen Befehl fehlschlagen, anstatt beim letzten fehlgeschlagenen Befehl.build:generate
: Wendet Patches an, validiert die Konfiguration, generiert eine ID und generiert statische Inhalte, wenn SCD für die Build-Phase aktiviert ist.build:transfer
- Überträgt generierten Code und statischen Inhalt an das endgültige Ziel.
Die Befehle werden im Anwendungsverzeichnis (/app
) ausgeführt. Sie können den cd
-Befehl verwenden, um das Verzeichnis zu ändern. Die Hooks schlagen fehl, wenn der letzte Befehl in ihnen fehlschlägt. Um sie beim ersten fehlgeschlagenen Befehl zum Fehlschlagen zu bringen, fügen Sie set -e
am Anfang des Hooks hinzu.
So kompilieren Sie Sass-Dateien mit grunt:
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
Kompilieren Sie Sass-Dateien mithilfe von grunt
vor der Bereitstellung statischer Inhalte, die während des Builds erfolgt. Platzieren Sie den Befehl grunt
vor dem Befehl build
.