Production.rb не читает переменные среды в производственной среде - PullRequest
0 голосов
/ 14 января 2019

Я использую эту настройку почтовой программы для производственного приложения

config.action_mailer.smtp_settings = {
    address:              'smtp.gmail.com',
    port:                 587,
    domain:               'example.com',
    user_name:            ENV['EMAIL'],
    password:             ENV['EMAIL_PASSWORD'],
    authentication:       'login',
    enable_starttls_auto: true
  }

На моей капле DigitalOcean (Ubuntu 14.04) я запустил

export EMAIL="email"
export EMAIL_PASSWORD="password"

Однако, это не работает. Я также попытался добавить их в мой файл .bashrc, но это тоже не сработало.

Я знаю, что другие посты могут предлагать использовать что-то вроде драгоценного камня figaro или dotenv, однако я не знаю, как использовать эти драгоценные камни в моей ситуации. Это приложение для клиента, который хочет использовать smtp для отправки электронных писем. Я не смог бы получить их учетные данные и хранить их на моей локальной машине. К счастью, очень легко получить доступ к серверу в DigitalOcean, поскольку он имеет встроенную функцию ssh на веб-сайте, которая позволяет получить доступ к каплям.

Это означает, что им придется вручную вводить в строки export EMAIL="theiremailgoeshere" и то же самое для пароля. Но, как уже говорилось, по какой-то причине это не работает

Любая помощь оценивается, большое спасибо!

Не знаю, поможет ли это, но я использую каплю Digital Ocean для размещения своего сайта. У меня запущен образ Ubuntu (14.04), и я использую Nginx и Passenger.

1 Ответ

0 голосов
/ 14 января 2019

Env vars из ~/.bashrc устанавливаются только для программ, которые открываются с помощью оболочки bash. Также существует проблема, если вы входите в систему как один пользователь, а ваш веб-сервер работает как отдельный пользователь с меньшими правами.

Вы можете установить системные переменные в Ubuntu в /etc/environment и /etc/profile.d/*.sh. Эти переменные ENV будут установлены для всех пользователей и всех открытых оболочек - и даже программ, открытых из графического интерфейса.

Однако я бы порекомендовал вам использовать более конкретный ключ, чтобы MYAPP_EMAIL избегал потенциальных конфликтов.

...