我正在尝试使用 Capistrano 在服务器上部署我的应用程序。我运行了 deploy:setup 和 deploy:check 成功。
deploy:update 的一些任务成功通过,但deploy:asset:precompile任务似乎使 ruby 崩溃。
我试图了解错误的原因:问题似乎与Rails Asset Pipeline和postgresql_adapter有关。
我有点迷茫,因为我对资产管道不太了解。我至少知道资产管道与 javascript 和 CSS 样式表有关,所以我不明白 postgresql_adapter 在这里做什么?
这些是我的(服务器和工作站)版本:
- 导轨 3.2.8
- RVM 1.16.17
- 宝石 1.8.24
- 捆绑器 1.2.1
- pg 宝石 0.14.1
我还尝试在服务器上运行 commande bundle exec rake assets:precompile,结果是一样的。所以问题与这个命令有关。
这是我得到的错误的摘要:
* 2012-11-09 16:54:21 executing `deploy:assets:precompile'
* executing "cd /var/www/opf/releases/20121109155419 && bundle exec rake RAILS_ENV=production RAILS_GROUPS=assets assets:precompile"
servers: ["192.168.5.200"]
[192.168.5.200] executing command
** [out :: 192.168.5.200] /var/www/opf/shared/bundle/ruby/1.9.1/gems/activerecord-3.2.8/lib/active_record/connection_adapters/postgresql_adapter.rb:1213: [BUG] Segmentation fault
** [out :: 192.168.5.200] ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
无论如何,这是我的 config/deploy.rb :
require 'bundler/capistrano'
require File.join(File.dirname(__FILE__), 'deploy') + '/capistrano_database'
set :rvm_type, :system
set :rvm_ruby_string, 'ruby-1.9.3-p194@rail3dev20120606'
require 'rvm/capistrano'
set :application, 'opf'
set :deploy_to, '/var/www/opf'
set :rails_env, 'production'
set :user, 'the_user'
set :use_sudo, false
set :group_writable, false
set :scm, :git
set :repository, 'git@github.com:user/opf.git'
set :branch, 'master'
default_run_options[:pty] = true
set :deploy_via, :remote_cache
server '192.168.5.200', :web, :app, :db, :primary => true
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
非常欢迎帮助,因为我不知道在哪里看。谢谢