Symfony进程中的docker-machine


docker-machine inside Symfony Process

我有Laravel 5.2,并尝试做这样的事情

namespace App'Jobs;
use App'Jobs'Job;
use Illuminate'Queue'SerializesModels;
use Illuminate'Queue'InteractsWithQueue;
use Illuminate'Contracts'Queue'ShouldQueue;
use Symfony'Component'Process'Process;
use Symfony'Component'Process'Exception'ProcessFailedException;
class MachineCreate extends Job implements ShouldQueue
{
    use InteractsWithQueue, SerializesModels;
    /**
     * Create a new job instance.
     *
     */
    public function __construct()
    {
        //
    }
    /**
     * Execute the job.
     *
     */
    public function handle()
    {
        $process = new Process('docker-machine create --driver digitalocean --digitalocean-access-token *** do-test');
        $process->setTimeout(600);
        $process->run();
        // executes after the command finishes
        if (!$process->isSuccessful()) {
            throw new ProcessFailedException($process);
        }
    }
}

每次我这样做,我有错误:

Driver "digitalocean" not found. Do you have the plugin binary accessible in your PATH?

但是如果我在php artisan tinker中做同样的事情,我没有错误,一切都很好。

你知道我做错了什么吗?

我通过使用ProcessBulder

修复了这个问题
$builder->setPrefix('/usr/local/bin/docker-machine');
$process = $builder
    ->setArguments(array(
        'create',
        '--driver', 'digitalocean',
        '--digitalocean-access-token', '***',
        'do-test'))
    ->getProcess();
$process->run();