Я добавил эти строки в /home/web/.bash_profile
. Веб является пользователем приложения Rails.Бог, используя sudo, не может найти параметр среды SECRET_KEY_BASE в файле .bash_profile
SECRET_KEY_BASE=xxxxxxxxxxxxxxxxxxxxx
export SECRET_KEY_BASE
Я добавил эту строку в /etc/sudoers
.
Defaults env_keep += "SECRET_KEY_BASE"
Эта команда возвращает ожидаемый результат.
sudo ruby -e 'puts ENV["SECRET_KEY_BASE"]'
Если я бегу Unicorn без Бога, он может найти SECRET_KEY_BASE от окружающей среды, и выполняет нормально.
bundle exec unicorn_rails -c config/unicorn.rb -E production -D
Бегущий Единорог, использующий судо без Бога, также работает нормально.
sudo bundle exec unicorn_rails -c config/unicorn.rb -E production -D
Но когда я запускаю Единорог с Богом, используя Sudo, он не смог найти SECRET_KEY_BASE и становится ошибка.
sudo god start my_app
Начальная команда в my_app.god - это.
God.watch do |w|
w.start = "cd #{rails_root} && bundle exec unicorn_rails -c config/unicorn.rb -E #{rails_env} -D"
w.uid = 'web'
w.gid = 'web'
...
end
Похоже, что проблема существует вокруг Бога, а не .bash_profile и Unicorn. Кроме того, что я должен попробовать?