мастер не получает переменные среды

#ruby-on-rails #ruby #devise #foreman

#ruby-on-rails #ruby #разработать #мастер

Вопрос:

Я использую foreman для переменных среды в приложении rails. В моем config/enviroments/development.rb у меня есть следующий код:

 config.action_mailer.smtp_settings = { 
  address: "smtp.gmail.com",
  port: "587",
  domain: "gmail.com",
  authentication: "plain", 
  enable_starttls_auto: true,
  user_name: ENV['GMAIL_USERNAME'],
  password: ENV['GMAIL_PASSWORD'] 
  #user_name: "user@gmail.com",                    
  #password: "password"
}
 

и мой файл .env выглядит следующим образом:

 GMAIL_USERNAME=user@gmail.com
GMAIL_PASSWORD=password
 

и мой Procfile:

 web: bundle exec rvmsudo rails s -p 80
 

Итак, если я запускаю «запуск бригадира», я получаю следующее сообщение:

Net::SMTPAuthenticationError in Devise::ConfirmationsController#create
530-5.5.1 Authentication Required

Однако, если я прокомментирую строки, касающиеся переменных среды, и раскомментирую те, которые прокомментированы прямо сейчас в development.rb, все работает нормально.

Итак, я полагаю, проблема в том, что форман неправильно получает переменные среды. Я использую git с ветвями и игнорирую как Procfile, так и .env

Что-то не так с моим кодом?

Ответ №1:

Похоже, переменные среды не устанавливаются. Какой метод вы используете для этого? Вот статья, в которой объясняется несколько методов.

Попробуйте установить их вручную в командной строке таким образом:

 export GMAIL_USERNAME="user@gmail.com"
export GMAIL_PASSWORD="password"
 

Затем введите env в командной строке, чтобы убедиться, что они установлены. Затем дайте ему кружение.