drush、typo3cms等容器内工具不在DDEV标准PATH中该如何正常使用?
非标准Composer布局下DDEV命令找不到工具的解决方法
核心原因是自定义的docroot/vendor/bin目录未被纳入web容器的环境变量PATH中,可通过以下几种方案解决:
方案1:修改DDEV项目配置追加PATH(最简便,无需重建容器镜像)
- 打开项目根目录下的
.ddev/config.yaml文件 - 找到或新增
web_environment配置项,写入PATH追加规则:
web_environment: - PATH=/var/www/html/docroot/vendor/bin:$PATH
- 保存后执行
ddev restart重启项目即可生效,后续ddev drush、ddev typo3cms这类命令可正常识别对应二进制文件。
方案2:自定义容器构建固化PATH(适合需要固定到容器镜像的场景)
- 进入项目的
.ddev/web-build目录,若目录不存在可手动创建 - 新建名为
Dockerfile的文件,写入以下内容:
ARG BASE_IMAGE FROM $BASE_IMAGE ENV PATH="/var/www/html/docroot/vendor/bin:$PATH"
- 执行
ddev restart重建web容器后生效。
方案3:临时单命令适配(不需要长期配置时使用)
- 执行命令时直接指定完整的二进制文件路径即可,示例:
# 执行drush缓存清理 ddev exec docroot/vendor/bin/drush cr # 执行typo3cms缓存刷新 ddev exec docroot/vendor/bin/typo3cms cache:flush
内容的提问来源于stack exchange,提问作者rfay
相关产品推荐
相关产品推荐

