2015-07-29 2 views
0

Я добавил эти строки в /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. Кроме того, что я должен попробовать?

ответ

0

Я добавил эту строку в my_app.god

ENV["SECRET_KEY_BASE"] = 'xxxxxxxxxxxxxxxxxxxxxxxx' 

Я знаю, что это не круто решение, но оно работает. И SECRET_KEY_BASE не входит в репозиторий Git в качестве исходного кода.

Смежные вопросы