【问题标题】:Rails app fails to compile on Heroku because of Devise secret_key由于设计了 secret_key,Rails 应用程序无法在 Heroku 上编译
【发布时间】:2015-08-21 19:29:52
【问题描述】:

我整晚都在尝试部署到 Heroku,但我一直收到同样的错误:

remote: -----> 为 Rails 资产准备应用程序>pipeline
远程:运行:耙资产:预编译
远程:rake 中止!
远程:未设置 Devise.secret_key。请将以下内容添加到您的设计初始化程序中:
远程:config.secret_key = '秘密令牌字符串'
remote:请确保您在安装 Devise 或设置密钥后重新启动了您的应用程序。

...

远程:!预编译资产失败。
远程:!
远程:
偏僻的: !推送被拒绝,无法编译 Ruby 应用程序
远程:
远程:验证部署...
远程:
偏僻的: !推送被拒绝病毒阻断。
远程:
https://git.heroku.com/viral-blocitoff.git
! [remote denied] master -> master (pre-receive hook denied)
错误:未能将一些引用推送到“https://git.heroku.com/viral-blocitoff.git

我还运行以下命令为 heroku 设置环境变量:

    figaro heroku:set -e production

这会读取我所有的固定值,包括 SENDGRID 和 DEVISE_SECRET_KEY

这是我的 application.yml 文件(减去固定值):

    SENDGRID_PASSWORD: ********
    SENDGRID_USERNAME: @heroku.com

    production:
      SECRET_KEY_BASE: secret token
      DEVISE_SECRET_KEY: secret token

这是我的 devise.rb 文件中的内容:

    config.secret_key = ENV['DEVISE_SECRET_KEY']

我在这个网站上查看了其他提议的解决方案,但不到两个月前,我让 Devise 在另一个应用程序上工作,而没有完成这些任务。有什么我遗漏的吗?

【问题讨论】:

  • 您必须在.gitignore 中添加了application.yml,因此,请确保您已通过settings 内的GUI 手动设置环境变量或使用Figaro,并且您在YAML 中没有对齐问题
  • 该应用程序在 Rails 服务器上运行时可以在开发中工作——完全没有挂起,包括身份验证、电子邮件或其他东西。
  • @CbaBhusal 我确实使用 figaro 来设置我的环境变量,并且我用命令“heroku config”确认了这些变量显示了与我在 application.yml 中相同的固定值。我正在尝试考虑可能存在什么样的对齐问题?
  • @CbaBhusal 是的,我在 .gitignore 中有 application.yml。但是我将 secrets.yml 推送到我在 github 上的遥控器,但它没有实际值。

标签: ruby-on-rails heroku devise


【解决方案1】:

可以部署。我取消设置我的 heroku 环境变量,然后重置它们。我还为开发和生产使用了一个令牌(通过 ENV 变量) secret_key_base 将远程主机推送到 Heroku,它编译并启动。然后将数据库也迁移到 Heroku。一切都很好。

【讨论】:

    【解决方案2】:

    我的应用程序报告了同样的错误,但是,这个问题是由使用 Figaro gem 和严格的 systemAdmin 共同造成的。在实现 Figaro gem,创建一个 secrets.yml 文件以分配身份验证令牌,然后将其适当地存储在 .gitignore 中,可能会发生冲突尝试部署到 heroku 时,因为 .gitignore 阻止推送部署所需的 secrets.yml 文件凭据。

    具体来说,我使用以下 gem 和过程来解决冲突。

    1. gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets'
    2. bundle install
    3. git push heroku master --force

    上述解决方案在相关的 StackOverflow 帖子中进一步解释:How do you manage secret keys and heroku with Ruby on Rails 4.1.0beta1?

    此外,我在 Rails 4.1 中使用 Figaro 时遇到了多个问题;我在以下Gist 详细介绍了与 secrets.yml 管理相关的问题。

    希望这会有所帮助-谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 2013-03-22
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-12
      相关资源
      最近更新 更多