我正在开发一个laravel项目,我们将docker-compose
用于本地开发环境,我们正在尝试使用laravel / envoy缩短我们用于安装composer依赖项和artisan的命令。
以下是我们迄今为止所做的一个例子:
@task('composer-require')
docker-compose exec -u 1000 web composer require {{ $package }}
@endtask
使用如下
envoy run composer-install --package=xxx/yyy
现在我们的Envoy.blade.php
文件变得越来越大,因为我们必须将每个用法作为一项任务,我们必须记住所有这些名称。
我想知道是否有可能,我们如何才能接受像envoy run composer install xxx/yyy
这样的命令,只定义一个名为composer
的任务,然后传递install xxx/yyy
部分?
关于我的英语
答案 0 :(得分:3)
您可以传递这样的参数envoy run deploy --command=require --package=laracasts/flash.
如果您愿意,还可以为--package
和--command
设置默认值。在可能的情况下,使用部署"故事"而不是一次运行一个任务。
@servers(['web' => '127.0.0.1'])
@setup
$package = isset($package) ? $package : "laravel/envoy";
$command = isset($command) ? $command : "require";
@endsetup
@story('deploy')
composer
@endstory
@task('composer')
echo "Running: composer {{ $command }} {{ $package }}.";
composer {{ $command }} {{ $package }}
@endtask
@finished
echo "Envoy deployment complete.\r\n";
@endfinished