Переменные среды не работают в DigitalOcean - PullRequest
0 голосов
/ 01 июня 2018

Я пытался установить переменные окружения в .bashrc, .profile, .bash_profile, /etc/environment, а также в /etc/defaults/nginx, но ничего не получалось.Только /etc/environment был файл, который на самом деле ответил echo $MY_VAR вывод, но приложение Rails не выбрало эти переменные даже после перезапуска nginx and puma вместе с daemon-reload, другие файлы даже не ответили в терминале (потому что, когда я делаюssh обновляет LINUX session).Я использую эти переменные окружения в файлах папки my_app/config.Может кто-нибудь сказать лучший способ заставить эти переменные работать.

Я использую Nginx , Puma , Ruby on Rails 5 , Capistrano и Ubuntu 18.04.Заранее спасибо

1 Ответ

0 голосов
/ 01 июня 2018

Если вы открыты для использования Dotenv gem , я недавно использовал его в сочетании с сохранением моих переменных окружения в .env (обязательно добавьте его в .gitignore).Документы для Dotenv объясняют, как выполнить настройку.В config/application.rb вам нужно добавить Dotenv::Railtie.load, затем YOUR_SECRECT = ENV['YOUR_SECRECT'] и любые другие переменные, которые есть в .env.Предположительно, если вы используете Capistrano, вы должны быть в состоянии append .env с другими linked_files в config/deploy.rb, но мне пришлось добавить файл .env вручную в shared dir намой сервер.Тем не менее, эта установка сделала мои переменные среды доступными для файла config/environments/production.rb.

...