【问题标题】:What's causing the lack of secret_key_base on CircleCI with Rails 5.2?是什么导致在带有 Rails 5.2 的 CircleCI 上缺少 secret_key_base?
【发布时间】:2018-07-09 11:19:29
【问题描述】:

我有一个使用 Devise 的 Rails 5.2 应用程序。我的电脑上一切正常,但是当我尝试在 CircleCI 中运行测试时,我收到了这个错误:

#!/bin/bash -eo pipefail
bundle exec rake db:create
rake aborted!
Devise.secret_key was not set. Please add the following to your Devise initializer:

  config.secret_key = 'faa1201370967c22ce2136d7ad84e50705ed50395292b9fde9f76b04dae12bb9e25246418393d779cbae15b259bac0e3430d28ff24c166c08ece1cae2ac19531'

你可以在这里看到它:https://circleci.com/gh/dashmantech/modulator/12

devise.rb上的注释和默认设置是:

  # The secret key used by Devise. Devise uses this key to generate
  # random tokens. Changing this key will render invalid all existing
  # confirmation, reset password and unlock tokens in the database.
  # Devise will use the `secret_key_base` as its `secret_key`
  # by default. You can change it below and use your own secret key.
  # config.secret_key = "53552bdcd8ec0bb6a83d984380ae1a81233f73cce6093441b097efe1b6bd893eec5da67f2fb3afa3b23242e1b1f089c56eb82621996946f8960d8d71f95602cf"

Devise 似乎会采用 Rails 的密钥库。我在我的 CircleCI 设置中定义了SECRET_KEY_BASE(在他们的网络用户界面上),它似乎已正确导出:

为什么会出现此错误?我错过了什么? Rails-5.2 处理这个secret_key_base 以进行测试和生产的方式是什么?

我的应用程序的完整源代码在这里:https://github.com/dashmantech/modulator(我不确定与此问题相关的内容)。

【问题讨论】:

  • 我没有看到 SECRET_KEY_BASE 在您的 circleci.yml 配置中定义。在您的devise.rb 文件中也没有任何与secret_key 相关的设置。
  • @Зелёный: SECRET_KEY_BASE 在 CircleCI 的环境变量中,而不是在 circleci.yml 上。我正在添加一个屏幕截图以显示它正在运行,但您可以在 CircleCI 的输出中自己看到它。 devise.rb需要什么设置?
  • Here 你需要设置config.secret_key = ENV['SECRET_KEY_BASE']
  • 它说:“Devise 将默认使用 secret_key_base 作为其 secret_key”,我认为这意味着 Devise 将使用 Rails 的 secret_key_base 作为 secret_key 而无需手动设置它。我认为选择它的代码是这样的:github.com/plataformatec/devise/blob/…
  • @pupeno 如果你有secrets.ymlsecret_key_base,你可以吗?

标签: ruby-on-rails devise circleci ruby-on-rails-5.2


【解决方案1】:

我遇到了完全相同的问题(使用 Rails 5.2.1 和 Devise 4.4.3)。

我刚刚通过将 Devise gem更新4.5.0 解决了这个问题。

(我仍然不知道为什么 Devise 无法在 prod 中获得 secret_key_base ......)

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2017-06-02
    • 2014-07-06
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多