首页 > 解决方案 > 如果我将 config.cron.yml 与 ddev 一起使用,来自 config.yaml 的钩子将被忽略

问题描述

我有一个使用 TYPO3 和一个钩子运行的 ddev,它将一个 auth.json 复制到 ~/.composer/auth.json。如果我使用来自 Github 的以下配方ddev-contrib/.../cronjob,则只会加载来自 config.cron.yml 的钩子。

我怎样才能加载两个钩子。

这是我的代码:

配置.yaml

  1 APIVersion: v1.12.1
  2 name: projectname
  3 type: typo3
  4 docroot: deployer/current/web
  5 php_version: "7.2"
  6 webserver_type: nginx-fpm
  7 router_http_port: "80"
  8 router_https_port: "443"
  9 xdebug_enabled: false
 10 additional_hostnames: []
 11 additional_fqdns: []
 12 mariadb_version: "10.2"
 13 nfs_mount_enabled: false
 14 provider: default
 15 use_dns_when_possible: true
 16 timezone: ""
 17 hooks:
 18   post-start:
 19     - exec: echo Copying Credentials…
 20     - exec: mkdir -p /home/montea/.composer
 21     - exec: cp /var/www/html/auth.json /home/montea/.composer/auth.json

配置.cron.yml

  1 webimage_extra_packages: [cron]
  2 # INFO: replace montea with your local user
  3 
  4 hooks:
  5   post-start:
  6     - exec: echo '*/1 * * * * montea TYPO3_CONTEXT=Development /usr/bin/php /var/www/html/public/typo3/sysext/core/bin/typo3 scheduler:run' | sudo tee -a /etc/cron.d/typo3
  7     - exec: sudo chmod 0600 /etc/cron.d/typo3 && sudo service cron star

如果我重新启动项目,我只会看到来自 config.cron.yml 的钩子

我可以将 exec-parts 从 config.cron.yml 移动到 config.yaml 但第一行是webimage_extra_packages: [cron]什么?

标签: typo3hooktypo3-8.xddev

解决方案


来自 config.cron.yaml 的启动后挂钩将覆盖config.yaml 中提供的启动后挂钩,这就是它的本意。

您需要将钩子(或者可能是所有内容)从 config.cron.yaml 移动到 config.yaml。

您可以使用 来查看最终的 config.yaml 的样子ddev debug configyaml,这将向您展示最终组合版本的样子。


推荐阅读