Хостинг приложения Symfony 4 с EasyDeployBundle на сервере без /usr/local/bin/composer

Для приложения Symfony 4 я выбрал план Web Cloud от хостинг-провайдера OVH.

Для развертывания я решил использовать EasyDeployBundle, который выглядит очень многообещающе. Это мой файл конфигурации:

<?php

use EasyCorp\Bundle\EasyDeployBundle\Deployer\DefaultDeployer;

return new class extends DefaultDeployer
{
    public function configure()
    {
        return $this->getConfigBuilder()
            ->server('ovh')
            ->deployDir('directory/path/at/server')
            ->repositoryUrl('[email protected]:foo/bar.git')
            ->repositoryBranch('master')
        ;
    }
}

У меня есть файл .ssh/config со следующей записью:

Host ovh
    Hostname sshcloud.foobar.hosting.ovh.net
    Port 12345
    User foobar

Примечание: все значения являются фиктивными, только для иллюстративных целей.

Когда я бегу:

php bin/console deploy --dry-run -v

все идет нормально, но когда я на самом деле пытаюсь развернуть, я получаю следующую ошибку:

Команда «ssh ovh 'который /usr/local/bin/composer'» не удалась.

Проблема в том, что у меня нет прав на запись в каталог /usr/local/bin/ на сервере. composer.phar находится в моем домашнем каталоге, и я не могу переместить его в указанное место назначения.

Есть ли возможность указать EasyDeployBundle искать composer в другом каталоге?


person cezar    schedule 08.04.2019    source источник


Ответы (1)


Я действительно должен читать руководства, в частности, когда я связываю их в своем вопросе.

Существует метод remoteComposerBinaryPath, который принимает пользовательский путь к composer. Я изменил метод configure следующим образом:

public function configure()
{
    return $this->getConfigBuilder()
        ->server('ovh')
        ->deployDir('directory/path/at/server')
        ->repositoryUrl('[email protected]:foo/bar.git')
        ->repositoryBranch('master')
        ->remoteComposerBinaryPath('composer.phar')
    ;
}

На сервере я создал .bashrc в своей домашней папке и добавил строку:

export PATH=$PATH:/home/foobar

и теперь развертывание преодолевает это препятствие.

У меня сейчас другая проблема, но, по крайней мере, эта проблема решена, и, возможно, ответ может помочь и другим людям.

person cezar    schedule 08.04.2019