"Отсутствие" secret_key_base "для" производственной "среды" ошибка на Heroku

88
12

Я получил сообщение об ошибке "Возникла необработанная ошибка нижнего уровня" при первом развертывании моего приложения на Heroku, а heroku logs показывает:


Отсутствует secret_key_base для среды "production", установите это значение в config/secrets.yml



1) По умолчанию secrets.yml указывает secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> для производства


2) Я сгенерировал секрет, используя rails secret, затем добавил это в конфигурацию моего приложения Heroku через heroku config:set SECRET_KEY_BASE='(the key)'


3) heroku config показывает это значение, установленное для secret_key_base


4) Возможно, самое главное, основываясь на более старых вопросах относительно этой ошибки, .gitignore не включает secrets.yml - это по умолчанию .gitignore, сгенерированный для приложения Rails 5. Поэтому secrets.yml должен был быть развернут с моим приложением, которое указывает, что секрет будет загружаться через переменную среды в рабочей среде.


5) Я также запустил heroku ps:restart, если для приложения понадобилась дополнительная помощь для установки переменной окружения


Я читал старые сообщения, но последний ответ, казалось, обеспечивал, что secrets.yml не был включен в .gitignore, но, как уже упоминалось, это не относится к Rails 5 по умолчанию .gitignore.


Что еще я могу попробовать? спасибо.


Изменить: когда я устанавливаю значение конфигурации в командной строке, я также получаю сообщение Heroku:


Настройка SECRET_KEY_BASE и перезапуск (приложение)... done


спросил(а) 2016-12-17T16:15:00+03:00 3 года, 6 месяцев назад
1
Решение
67

Хорошо, я вижу, что произошло. Выполнение heroku run bash и проверка того, какие файлы были развернуты, были просветляющими.


Верно, что secrets.yml не был в файле .gitignore для моего локального репо, но кажется, что кто-то, возможно, злонамеренные хакеры, возможно, гремлины, добавил secrets.yml к моему глобальному .gitignore (.gitignore_global), и поэтому этот файл фактически не был нажат на Heroku.

Я удалил файл секретов из моего глобального .gitignore, выгрузил секретные ключи разработчика и тестовой среды в dotenv для управления и успешно запускал развернутое приложение.


Я думал об удалении вопроса, но оставил бы его в случае, если другие столкнутся с этой проблемой или даже похожий, где использование heroku run bash может оказаться полезным при диагностике проблем с приложениями на Heroku.

ответил(а) 2016-12-17T18:13:00+03:00 3 года, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема