【发布时间】:2021-10-01 00:10:07
【问题描述】:
我有一个非标准的作曲家布局,所以我的一些工具在 docroot/vendor/bin 而不是预期的 vendor/bin 中,所以它们不在网络容器内的 $PATH 中,以及像 ddev drush 这样的工具或ddev typo3cms 无法正常工作,因为他们找不到该工具。我能做什么?
【问题讨论】:
标签: ddev
我有一个非标准的作曲家布局,所以我的一些工具在 docroot/vendor/bin 而不是预期的 vendor/bin 中,所以它们不在网络容器内的 $PATH 中,以及像 ddev drush 这样的工具或ddev typo3cms 无法正常工作,因为他们找不到该工具。我能做什么?
【问题讨论】:
标签: ddev
至少有几种方法可以解决这个问题。最简单的方法可能是将您的工具符号链接到/usr/local/bin,在那里很容易找到它们。至少有几种方法可以做到这一点。 (请注意,对于大多数项目来说,最好的长期解决方案是使用标准的 composer 布局,其中包含项目根目录中的 composer.json 和项目根目录中的 vendor 目录,但我们都知道我们无法解决所有问题。但是vendor/bin 总是在 $PATH.. 所以这是通常最简单的方法。)
ddev typo3cms 将找到该工具。将这样的内容添加到.ddev/config.yaml
hooks:
post-start:
- exec: ln -s /var/www/html/docroot/vendor/bin/typo3cms /usr/local/bin
.ddev/web-build/Dockerfile 中的符号链接:要将符号链接添加到 drush,例如,在非标准位置并使 ddev drush 工作,请将此文件添加为 .ddev/web-build/Dockerfile:ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN ln -s /var/www/html/docroot/vendor/bin/drush /usr/local/bin
我确信还有很多其他方法可以做到这一点,通过在容器内操作 $PATH(通过在 homeadditions feature 中添加 .bashrc)
【讨论】: