Я создал новое приложение Rails с версией 5.2. В Rails 5.2 появилась функция шифрования секретов.
Я настроил секретный ключ в файле devise.rb
config.secret_key = Rails.application.credentials [Rails.env.to_sym] [: secret_key_base]
а также добавил secret_key для всех сред, использующих
РЕДАКТОР = учетные данные vim rails: изменить
development:
secret_key_base: absdss
test:
secret_key_base: 123232
production:
secret_key_base: 123456
после сохранения учетных данных я могу получить secret_key в консоли рельсов в локальном
Вывод в консоли рельсов:
Running via Spring preloader in process 44308
Loading development environment (Rails 5.2.0)
2.5.1 :001 > Rails.application.credentials.development[:secret_key_base]
=> "absdss"
Учетные данные не работают на производственном сервере, мы используем CI / CD в gitlab для этапов развертывания, когда я запускаю
рельсы db: создать db: мигрировать
я получаю следующую ошибку
> rails db:create db:migrate
---> Running in 1563453ddf2a
rails aborted!
NoMethodError: undefined method `[]' for nil:NilClass
/usr/src/app/config/initializers/devise.rb:12:in `block in <main>'
/usr/local/bundle/gems/devise-4.4.3/lib/devise.rb:307:in `setup'
/usr/src/app/config/initializers/devise.rb:5:in `<main>'
/usr/local/bundle/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:50:in `load'
Теперь вопрос в том, как установить RAILS_MASTER_KEY на рабочий сервер?