Команды оболочки SSH не найдены (композитор, npm) - PullRequest
0 голосов
/ 11 марта 2019

Мой сервер - это план Linux Reseller для a2hosting с whm и cpanel.

Мой проект - PHP Laravel.

Проект создается, а затем с помощью задачи Copy Files Over SSH я могу скопироватьфайлы на мой сервер.

Проблема в том, что когда я пытаюсь добавить SSH задач после этого для composer install и npm install, я получаю ошибки.Он использует то же соединение и ключ SSH, что и задача копирования файла.Работают такие вещи, как cd и ls.

Когда я локально использую то же имя пользователя и тот же закрытый ключ и запускаю composer install, он работает так же, как и npm install.После запуска composer и npm сайт загружается нормально, но я хочу, чтобы это было автоматизировано, поэтому мне не нужно вручную запускать эти команды.

Вот мой inline script:

composer install

Моя ошибка выглядит так:

2019-03-11T16:34:21.4468896Z ##[section]Starting: Run Composer
2019-03-11T16:34:21.4471875Z ==============================================================================
2019-03-11T16:34:21.4472119Z Task         : SSH
2019-03-11T16:34:21.4472240Z Description  : Run shell commands or a script on a remote machine using SSH
2019-03-11T16:34:21.4472332Z Version      : 0.148.0
2019-03-11T16:34:21.4472433Z Author       : Microsoft Corporation
2019-03-11T16:34:21.4472519Z Help         : [More Information](http://go.microsoft.com/fwlink/?LinkId=821892)
2019-03-11T16:34:21.4472635Z ==============================================================================
2019-03-11T16:34:21.8985848Z composer install
2019-03-11T16:34:21.9008544Z Trying to establish an SSH connection to ***@mydomain.com:7822
2019-03-11T16:34:21.9181145Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9181767Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9182133Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9182449Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9183364Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9183731Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9184084Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9184417Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9184742Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9185068Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9185405Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9185751Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:21.9186053Z (node:1296) Warning: Use Cipheriv for counter mode of aes-256-ctr
2019-03-11T16:34:22.2806417Z Successfully connected.
2019-03-11T16:34:23.0424509Z tr -d '\015' <"./sshscript_1552322" > "./sshscript_1552322._unix"
2019-03-11T16:34:23.1378047Z chmod +x "./sshscript_1552322._unix"
2019-03-11T16:34:23.2240403Z "./sshscript_1552322._unix"
2019-03-11T16:34:23.3118392Z 
2019-03-11T16:34:23.3171367Z ##[error]./sshscript_1552322._unix: line 3: composer: command not found
2019-03-11T16:34:23.3180458Z 
2019-03-11T16:34:23.3181101Z ##[error]Command failed with errors on remote machine.
2019-03-11T16:34:23.4532093Z ##[section]Finishing: Run Composer

1 Ответ

1 голос
/ 15 марта 2019

Поскольку вы можете выполнять команды, когда вы входите вручную через SSH, но вы не можете выполнять те же команды через скрипты Azure. Это может означать, что ваш конвейерный скрипт не может загрузить ~/.bashrc или ожидаемое значение $PATH, чтобы можно было найти команду composer. Вам нужно убедиться, что ваш конвейерный скрипт содержит правильное значение $PATH, запустив echo $PATH вручную и через конвейерный скрипт, а затем сравните значение или вы можете попытаться указать полный путь двоичного файла composer, вы можете его получить вручную, выполнив which composer, то же самое касается npm.

Обновление: Поскольку вы упомянули, что у вас есть проблема с $ PATH, вы можете определить ее вручную в используемом вами сценарии bash:

export PATH=/my/missing/path:$PATH
...