ddev - 如果容器内工具(如 drush 或typo3cms)不在标准 DDEV PATH 中,如何使它们可用?
问题描述
我有一个非标准的作曲家布局,所以我的一些工具在 docroot/vendor/bin 而不是预期的 vendor/bin 中,所以它们不在网络容器内的 $PATH 中,并且工具喜欢ddev drush
或ddev typo3cms
不能正常工作因为他们找不到工具。我能做些什么?
解决方案
至少有两种方法可以解决这个问题。最简单的可能是将您的工具符号链接到/usr/local/bin
容易找到它们的位置。至少有几种方法可以做到这一点。(请注意,对于大多数项目,最好的长期解决方案是使用标准的 composer 布局,其中包含项目根目录中的 composer.json 和项目根目录中的 vendor 目录,但我们都知道我们无法解决所有问题。但是vendor/bin
总是在 $PATH.. 所以这是通常最简单的方法。)
- 启动后挂钩中的符号链接:我们可以添加启动后挂钩以将typo3cms(例如)符号链接到/usr/local/bin 并
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 功能中添加 .bashrc )
推荐阅读
- html - 如何将 div 居中,同时将 div 内的内容保持在原位
- reactjs - 如何使用 React Router 混合使用父子路由正确路由
- r - modCost 中的错误(obs = world_data,model = out):在 R 中找不到对象“world_data”
- python - 计算余弦相似度:ValueError: Input must be 1- or 2-d
- jboss - PersistenceException / HibernateException:事务在不同的线程中回滚
- python - int() 参数必须是字符串、类似字节的对象或数字,而不是 'NoneType' Django 表单
- laravel - 如何在windows中输入php artisan serve linux?
- r - plot.new() 中的错误:闪亮应用中的图形边距太大
- wpf - ClickOnce - 部署中的引用与应用程序清单中定义的身份不匹配
- reactjs - 从对象数组填充表示 SVG 的功能组件