如果我将 config.cron.yml 与 ddev 一起使用,来自 config.yaml 的钩子将被忽略

If I use config.cron.yml with ddev, hooks from config.yaml will be ignored

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

如何加载两个挂钩。

这是我的代码:

config.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

config.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

的钩子

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

您 config.cron.yaml 中的 post-start 挂钩 覆盖 config.yaml 中提供的 post-start 挂钩,它这就是它的意图。

您需要将 config.cron.yaml 中的挂钩(或所有内容)移至 config.yaml。

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