如何用ddev运行composer?

时间:2018-04-04 20:43:04

标签: ddev

我需要在我的ddev项目上运行composer,而不是在我的Windows机器上运行它。例如,项目在启动前需要composer install。如何在这种环境中使用composer,特别是在Windows上?

2 个答案:

答案 0 :(得分:3)

更新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
  2. 请注意,ddev composer create 与<{1}}完全相同,因此您无需了解底层文件系统的复杂性。文档中有drupalTYPO3 composer create-project个例子。

    这里没有任何东西阻止你使用任何你熟悉的编曲技术,但这是一个很好的方法来获得可预测的on-linux容器内作曲家版本。对于使用Windows操作系统的人来说,这应该是非常重要的,因为编写器的可用性较低且行为不可预测。

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

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

    3. 每次项目启动时,尝试使用此挂钩方法在容器(在已安装的分区上)中运行composer install
    4. ddev ssh

      对于有关作曲家模式的一些较旧的想法(大部分被 hooks: post-start: - exec: composer install -d /var/www/html 淘汰,请参阅

答案 1 :(得分:0)

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

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

我假设使用它而不是 exec 的原因是还有 pre-composerpost-composer 钩子,所以也许这也会执行这些钩子。不过,我不确定这一点或实际差异。