【问题标题】:How can I make in-container tools like drush or typo3cms usable if they're not in the standard DDEV PATH?如果容器内工具(如 drush 或typo3cms)不在标准 DDEV PATH 中,如何使它们可用?
【发布时间】:2021-10-01 00:10:07
【问题描述】:

我有一个非标准的作曲家布局,所以我的一些工具在 docroot/vendor/bin 而不是预期的 vendor/bin 中,所以它们不在网络容器内的 $PATH 中,以及像 ddev drush 这样的工具或ddev typo3cms 无法正常工作,因为他们找不到该工具。我能做什么?

【问题讨论】:

    标签: ddev


    【解决方案1】:

    至少有几种方法可以解决这个问题。最简单的方法可能是将您的工具符号链接到/usr/local/bin,在那里很容易找到它们。至少有几种方法可以做到这一点。 (请注意,对于大多数项目来说,最好的长期解决方案是使用标准的 composer 布局,其中包含项目根目录中的 composer.json 和项目根目录中的 vendor 目录,但我们都知道我们无法解决所有问题。但是vendor/bin 总是在 $PATH.. 所以这是通常最简单的方法。)

    1. 启动后挂钩中的符号链接:我们可以添加启动后挂钩以将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
    
    1. .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)

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 2018-12-06
      • 2019-06-10
      • 1970-01-01
      • 2018-10-21
      • 2019-09-28
      • 2011-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多