Как запустить команду S SH с помощью Laravel Envoy - PullRequest
1 голос
/ 10 апреля 2020

Я хочу запустить S SH команду для запуска / остановки Сервера с Laravel Envoy на Linux. Но я получаю ошибку для синтаксиса S SH :: into (). Я не знаю, что делать полностью застрял. Нужен способ решить это и заставить это работать. Настройка посланника и работает нормально с командой "php artisan":

// Envoy.blade.php
@setup
     $connection = ['web' => $user.'@'.$host.' -p '. '22'];
@endsetup
@servers($connection)
@task('foo', ['on' => 'web'])
     php artisan
@endtask

Команда : envoy run foo --user = root --host = 94.130.97.242

И это то, что я делаю для S SH :: into () для запуска / остановки сервера.

// Envoy.blade.php
@include('vendor/autoload.php')
     $connection = ['web' => $user.'@'.$host.' -p '. '22'];
     $target = [
          'host' => $host,
          'username' => $user,
          'password' => $password,
          'timeout' => 10,
     ];

     Config::set('remote.connections.runtime.host', $target['host']);
     Config::set('remote.connections.runtime.port', '22');
     Config::set('remote.connections.runtime.username', $target['username']);
     Config::set('remote.connections.runtime.password', $target['password']);

@endsetup
@servers($connection)
@task('foo', ['on' => 'web'])
     SSH::into('runtime')->run(array(
          'docker stop ' . $server
     ));
@endtask

Команда : envoy run foo --user = root --host = 94.130.97.242 --password = пароль --server = 22 После запуска выдает ошибку синтаксиса с ошибкой неожиданный токен 'runtime'. Мне нужна ваша помощь. Спасибо!

1 Ответ

0 голосов
/ 11 апреля 2020

Вот способ с Symfony процессом (изначально доступен в Laravel)

use Symfony\Component\Process\Process;

function start(string $user, string $host)
{
    $sshSetting = sprintf('ssh://%s@%s', $user, $host);

    $process = new Process([
        'docker', '-H', $sshSetting, 'start'
    ]);

    $process->run(); //synchronous
    $process->mustRun(); //synchronous, throw an exception whenever fail
    $process->start(); //asynchronous
}

Вот официальная документация https://symfony.com/doc/current/components/process.html#running -процесс-асинхронно

...