【发布时间】:2021-10-06 18:02:17
【问题描述】:
我正在升级一个站点并且根本不想站点安装(composer-install)drush,但我需要它。我知道在我的 Drupal 7 项目中安装了 drush8,但我也想在我的 Drupal8+ 项目中使用它,而不需要更改项目。
【问题讨论】:
标签: ddev
我正在升级一个站点并且根本不想站点安装(composer-install)drush,但我需要它。我知道在我的 Drupal 7 项目中安装了 drush8,但我也想在我的 Drupal8+ 项目中使用它,而不需要更改项目。
【问题讨论】:
标签: ddev
drush8 以 /usr/local/bin/drush8 的形式安装在 Web 容器中,但在 Drupal8+ 上它没有链接到 drush,因为推荐的技术是现场安装它 (ddev composer require drush/drush) 但你可以将 drush8 符号链接到 /usr/ local/bin/drush,您将立即让ddev drush 使用 drush 8。
有两种方法可以做到这一点:
.ddev/web-build/Dockerfile:ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN ln -s /usr/local/bin/drush8 /usr/local/bin/drush
.ddev/config.yaml:hooks:
post-start:
- exec: ln -s /usr/local/bin/drush8 /usr/local/bin/drush
第一种方式(Dockerfile)可能更好,因为它只发生一次,而第二种方式(config.yaml post-start)每次执行ddev start时都会发生。
请注意,如果您只想使用位于非标准位置的现场安装 drush,您可以使用 https://stackoverflow.com/a/69399975/215713 上的类似配方来完成此操作
【讨论】: