Я пытаюсь запустить некоторые команды в моем приложении NodeJS, которые необходимо запустить через SSH (например, Sequelize seeding), но когда я это сделал, я заметил, что ожидаемые env-переменные отсутствовали.
Если я запускаю eb printenv
на своем локальном компьютере, я вижу ожидаемые переменные среды, которые были установлены на моей информационной панели EB
Если я запускаю SSH и запускаю printenv
, все эти переменные, которые я ожидаю, отсутствуют.
Итак, что происходит, когда я запускаю свои семена, я получаю ошибку:
node_modules/.bin/sequelize db:seed:all
ERROR: connect ECONNREFUSED 127.0.0.1:3306
Я заметил, что порт был неправильным, он должен быть 5432. Я проверил, если мойпеременные окружения были установлены с printenv
, и их там нет.Это заставляет меня подозревать, что надлежащие переменные env не загружаются в моем сеансе ssh, и NodeJS возвращается к значениям по умолчанию, которые я указал в моей конфигурации.
Я нашел некоторые решения в Интернете, например, выполняя следующее длязагрузить переменные env:
/opt/python/current/env
Но каталог python не существует.Все, что находится внутри /opt/
, это каталоги elasticbeanstalk
и aws
.
Я добился некоторого успеха, чтобы хотя бы увидеть, что переменные env существуют где-то на сервере, выполнив следующее:
sudo /opt/elasticbeanstalk/bin/get-config environment --output YAML
Но простой запуск этой команды не решает проблему.Все, что он делает, это выводит ожидаемые переменные env на экран.Это что-то!По крайней мере, я знаю, что они точно есть!Но при запуске printenv
переменных env по-прежнему нет, так как мне решить эту проблему?Sequelize и NodeJS явно не видят переменные env, и они пытаются использовать запасные значения по умолчанию, которые установлены в моем конфигурационном файле.