Я использую Deployer до S SH на сервере и запускаю несколько сценариев для развертывания. Я не знаю внутренних деталей того, как Deployer выполняет s sh.
Проблема в том, что он имеет только фрагмент $PATH
, что означает, что двоичный файл, необходимый для развертывания, не найден. Я попытался добавить новую тестовую переменную $FOO
во все файлы, которые я могу вспомнить , чтобы увидеть, какой из них загружается:
~/.bash_profile
~/.bashrc
~/.profile
/etc/profile
/etc/bash.bashrc
с:
...
export FOO="etcprofile"
но Ни один из них не работает, так как значение $FOO
пусто при запуске Deployer.
Я также проверил флаги и команду в Deployer, и, кажется, нет ничего необычного:
deploy. php
task('debug:print', function () use($stage) {
run('echo $PATH');
run('echo $SHELL');
run('export');
dump($stage->getShellCommand());
dump($stage->getSshArguments());
exit("DONE");
});
output
falnyr@local:/Projects/deployer-app $ dep deploy stage-server -vvv
➤ Executing task debug:print
[stage-server] > echo $PATH
[stage-server] < ssh multiplexing initialization
[stage-server] < Linux stage-server xxx x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[stage-server] < /usr/local/bin:/usr/bin:/bin:/usr/games
[stage-server] > echo $SHELL
[stage-server] < /bin/bash
[stage-server] > export
[stage-server] < declare -x HOME="/home/admin"
[stage-server] < declare -x LANG="en_US.UTF-8"
[stage-server] < declare -x LC_CTYPE="en_NZ.UTF-8"
[stage-server] < declare -x LOGNAME="admin"
[stage-server] < declare -x MAIL="/var/mail/admin"
[stage-server] < declare -x OLDPWD
[stage-server] < declare -x PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
[stage-server] < declare -x PWD="/home/admin"
[stage-server] < declare -x SHELL="/bin/bash"
[stage-server] < declare -x SHLVL="2"
[stage-server] < declare -x SSH_CLIENT="xxx.xxx.xxx.xxx 62738 22"
[stage-server] < declare -x SSH_CONNECTION="xxx.xxx.xxx.xxx 62738 xxx.xxx.xxx.xxx 22"
[stage-server] < declare -x USER="admin"
[stage-server] < declare -x XDG_RUNTIME_DIR="/run/user/1000"
[stage-server] < declare -x XDG_SESSION_ID="xxxxxx"
[stage-server] < declare -x _="/bin/bash"
"bash -s"
Deployer\Ssh\Arguments {#166
-flags: []
-options: []
}
DONE
У меня также есть другой сервер с аналогичной конфигурацией, которая выглядит работать хорошо. Я не уверен, что искать, чтобы определить разницу в конфигурации.