【问题标题】:How can I run composer with ddev?如何使用 ddev 运行 composer?
【发布时间】:2018-09-14 13:13:46
【问题描述】:

我需要在我的 ddev 项目上运行 composer,但我的 Windows 机器上没有它。例如,项目在启动前需要composer install。如何在这种环境下使用 composer,尤其是在 Windows 上?

【问题讨论】:

    标签: ddev


    【解决方案1】:

    2018 年 11 月 15 日更新以显示原生 ddev 支持(ddev composer 命令)

    有几种方法可以为您的项目运行 composer。

    1. ddev v1.4.0 现在有ddev composerddev composer create 命令。这些在容器内运行作曲家,因此您可以保证获得与容器内托管环境相匹配的作曲家行为。 (这对 Windows 用户最重要。)
      • ddev composer require swiftmailer/swiftmailer
      • ddev composer update
      • ddev composer install
      • ddev composer create drupal-composer/drupal-project:8.x-dev --stability dev

    请注意,ddev composer createcomposer create-project 并不完全相同,因此您不必了解底层文件系统的复杂性。文档中有drupalTYPO3 ddev composer create 示例。

    这里没有什么可以阻止您使用任何您熟悉的作曲家技术,但这是获得可预测的 Linux 容器内作曲家构建的好方法。对于使用 Windows 操作系统的人来说,这应该是非常重要的,因为在 Windows 操作系统中,composer 不太可用并且有一些不可预测的行为。

    1. 以老式方式安装在主机上:如果 composer 在您的计算机/主机上是 installed,则只需 composer install。但是,这只适用于 macOS 和 Linux,并且只有在您拥有正确版本的 php 相关组件时才有效。它在 Windows (NTFS) 上根本无法正常工作,因为作曲家创建的符号链接与 (Linux) Web 容器内的使用不兼容。 (在 Windows 上安装 Composer 并不难:使用 chocolateychoco install -y composer。您需要在 c:\tools\php72\php.ini 中启用 gd 和 curl 扩展)

    2. 所有正常的 Composer 行为始终安装在您的 Web 容器中,因此无论您的主机上是否有 Composer,您都可以使用它。例如:ddev exec composer install -d /var/www/html 将在存储库的根目录中执行 composer install,与 ddev composer install 完全相同。也可以ddev ssh,在容器内命令行操作。

    3. 每次项目启动时,尝试使用这种钩子方法运行 composer install 在容器内(在挂载的分区上):
        hooks:
          post-start:
          - exec: composer install -d /var/www/html
    

    关于作曲家模式的一些较早的想法(大部分已被ddev composer 废弃,请参阅

    【讨论】:

      【解决方案2】:

      为了扩展accepted answer,DDEV 现在有一个composer-specific hook

      hooks:
        post-start:
        - composer: install -d /var/www/html
      

      我认为使用它而不是exec 的原因是还有pre-composerpost-composer 钩子,所以也许这也会执行这些钩子。不过,我不确定那或实际的区别。

      【讨论】:

        猜你喜欢
        • 2019-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 1970-01-01
        • 2016-04-30
        • 1970-01-01
        • 2019-05-03
        相关资源
        最近更新 更多