Capistrano部署和设计密钥
Capistrano deployment and devise secret key
我正在尝试使用 Capistrano 3.4.0 将 Rails 4.2.5 应用程序部署到生产服务器。设置非常简单,但是,在 capistrano 中的资产预编译任务中,我收到以下错误:
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '{some generated secret}'
Please ensure you restarted your application after installing Devise or setting the key.
经过数小时的研究,我完成了以下操作:
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 个问题和 Whosebug 答案,但其中 none 似乎解决了我的问题,包括重新安装 gem。我也查看了设计源代码,但根据它我所做的应该有效,所以我猜问题与环境 (Capistrano) 有关。任何提示表示赞赏。
你想做的事情很有意义,我使用了类似的设置。但是,我不使用 RVM - 我想知道它是否正确继承了您的环境?您可以通过创建类似于以下内容的 Capistrano 任务来相当轻松地调试它:
task :printenv do
run "printenv"
end
我正在尝试使用 Capistrano 3.4.0 将 Rails 4.2.5 应用程序部署到生产服务器。设置非常简单,但是,在 capistrano 中的资产预编译任务中,我收到以下错误:
Devise.secret_key was not set. Please add the following to your Devise initializer:
config.secret_key = '{some generated secret}'
Please ensure you restarted your application after installing Devise or setting the key.
经过数小时的研究,我完成了以下操作:
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 个问题和 Whosebug 答案,但其中 none 似乎解决了我的问题,包括重新安装 gem。我也查看了设计源代码,但根据它我所做的应该有效,所以我猜问题与环境 (Capistrano) 有关。任何提示表示赞赏。
你想做的事情很有意义,我使用了类似的设置。但是,我不使用 RVM - 我想知道它是否正确继承了您的环境?您可以通过创建类似于以下内容的 Capistrano 任务来相当轻松地调试它:
task :printenv do
run "printenv"
end