【问题标题】:Capistrano deployment and devise secret keyCapistrano 部署和设计密钥
【发布时间】:2016-07-22 14:23:15
【问题描述】:

我正在尝试使用 Capistrano 3.4.0 将 Rails 4.2.5 应用程序部署到生产服务器。设置非常简单,但是,在 capistrano 中的资产预编译任务中,我收到以下错误:

Devise.secret_key 未设置。请在您的设计初始化程序中添加以下内容:

config.secret_key = '{一些生成的秘密}'

请确保您在安装 Devise 或设置密钥后重新启动您的应用程序。

经过数小时的研究,我完成了以下工作:

if Rails.env == 'production'
  config.secret_key = ENV['DEVISE_SECRET_KEY']
end

然后我通过 SSH 连接到服务器并导出变量。但是,当我执行cap production deploy 时,我仍然会收到错误消息。

确切的命令是:

cd /home/deploy/app/releases/20160402210708 && ( export RAILS_ENV="production" ; ~/.rvm/bin/rvm default do bundle exec rake assets:precompile )

我已阅读所有 GitHub 问题和 StackOverflow 答案,但似乎都没有解决我的问题,包括重新安装 gem。我也查看了设计源代码,但根据它我正在做的事情应该有效,所以我猜这个问题与环境(Capistrano)有关。任何提示表示赞赏。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 devise capistrano3


    【解决方案1】:

    您尝试做的事情是有道理的,我使用了类似的设置。但是,我不使用 RVM - 我想知道它是否正确继承了您的环境?您可以通过创建类似于以下内容的 Capistrano 任务来相当轻松地进行调试:

    task :printenv do run "printenv" end

    【讨论】:

    • 谢谢,在对 Capistrano 如何处理环境变量进行了几个小时的调试后,我导出了 ~/.bashrc 开头的变量,并且成功了。
    猜你喜欢
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2017-06-03
    • 2012-09-26
    • 2020-06-07
    • 2011-11-01
    相关资源
    最近更新 更多