我如何 运行 composer with ddev?
How can I run composer with ddev?
我需要在我的 ddev 项目上 运行 composer,但我的 Windows 机器上没有。例如,项目在启动前需要一个composer install
。我如何在这种环境下使用作曲家,尤其是在 Windows?
2018-11-15 更新以显示本机 ddev 支持(ddev composer 命令)
有多种方法可以为您的项目运行作曲。
- ddev v1.4.0 现在有
ddev composer
和 ddev composer create
命令。这些 运行 容器内的作曲家,因此您可以保证获得与 in-container 托管环境相匹配的作曲家行为。 (这对 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 create
与 composer create-project
不完全 相同,因此您不必了解底层文件系统的复杂性。文档中有 drupal and TYPO3 ddev composer create
个示例。
这里没有任何内容会阻止您使用您熟悉的任何作曲家技术,但这是获得可预测的 on-linux in-container 作曲家构建的好方法。对于使用 Windows OS 的人来说,这应该是非常重要的,因为作曲家不太可用并且有一些不可预测的行为。
以老式方式在主机上安装:如果作曲家是 installed on your computer/host, just composer install
. However, that only works on macOS and Linux, and only works if you have the right versions of php related components. It does not work well at all on Windows (NTFS) because the symlinks composer creates are not compatible with usage inside the (Linux) web container. (Composer is not hard to install on Windows: Use chocolatey 和 choco install -y composer
。您需要在 c:\tools\php72\php.ini)
中启用 gd 和 curl 扩展
所有正常的 composer 行为始终安装在您的 Web 容器中,因此无论您的主机上是否安装了 composer,您都可以使用它。例如:ddev exec composer install -d /var/www/html
将在您的存储库的根目录中执行 composer 安装,与 ddev composer install
完全相同。也可以在容器中做ddev ssh
,在命令行操作
- 尝试这种挂钩方法 运行 每次启动项目时 在容器内 (在安装的分区上)安装 composer:
hooks:
post-start:
- exec: composer install -d /var/www/html
有关作曲家模式的一些较早的想法(大部分已被 ddev composer
废弃,请参阅
展开 , DDEV now has a composer-specific hook。
hooks:
post-start:
- composer: install -d /var/www/html
我认为使用它而不是 exec
的原因是还有 pre-composer
和 post-composer
挂钩,所以也许这也会执行这些挂钩。不过,我不确定那个或实际的区别。
我需要在我的 ddev 项目上 运行 composer,但我的 Windows 机器上没有。例如,项目在启动前需要一个composer install
。我如何在这种环境下使用作曲家,尤其是在 Windows?
2018-11-15 更新以显示本机 ddev 支持(ddev composer 命令)
有多种方法可以为您的项目运行作曲。
- ddev v1.4.0 现在有
ddev composer
和ddev composer create
命令。这些 运行 容器内的作曲家,因此您可以保证获得与 in-container 托管环境相匹配的作曲家行为。 (这对 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 create
与 composer create-project
不完全 相同,因此您不必了解底层文件系统的复杂性。文档中有 drupal and TYPO3 ddev composer create
个示例。
这里没有任何内容会阻止您使用您熟悉的任何作曲家技术,但这是获得可预测的 on-linux in-container 作曲家构建的好方法。对于使用 Windows OS 的人来说,这应该是非常重要的,因为作曲家不太可用并且有一些不可预测的行为。
以老式方式在主机上安装:如果作曲家是 installed on your computer/host, just
composer install
. However, that only works on macOS and Linux, and only works if you have the right versions of php related components. It does not work well at all on Windows (NTFS) because the symlinks composer creates are not compatible with usage inside the (Linux) web container. (Composer is not hard to install on Windows: Use chocolatey 和choco install -y composer
。您需要在 c:\tools\php72\php.ini) 中启用 gd 和 curl 扩展
所有正常的 composer 行为始终安装在您的 Web 容器中,因此无论您的主机上是否安装了 composer,您都可以使用它。例如:
ddev exec composer install -d /var/www/html
将在您的存储库的根目录中执行 composer 安装,与ddev composer install
完全相同。也可以在容器中做ddev ssh
,在命令行操作- 尝试这种挂钩方法 运行 每次启动项目时 在容器内 (在安装的分区上)安装 composer:
hooks:
post-start:
- exec: composer install -d /var/www/html
有关作曲家模式的一些较早的想法(大部分已被 ddev composer
废弃,请参阅
展开
hooks:
post-start:
- composer: install -d /var/www/html
我认为使用它而不是 exec
的原因是还有 pre-composer
和 post-composer
挂钩,所以也许这也会执行这些挂钩。不过,我不确定那个或实际的区别。