挂接属性
使用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
命令 之前的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文件,这会在生成期间发生。 将grunt
命令放在build
命令之前。
NOTE
使用ECE-Tools 2002.1.0及更高版本,您可以使用基于方案的部署功能在云基础架构项目上自定义Adobe Commerce的生成、部署和部署后流程。 请参阅基于方案的部署。
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26