首页 文章

NoMethodError:Capistrano :: Configuration:Class的未定义方法`instance'

提问于
浏览
3

我有部署问题 . rails 4.2.4 capistrano 3.4.0我不明白什么是错的 . 有谁可以帮助我吗?

$ bundle exec cap production deploy --trace
** Invoke production (first_time)
** Execute production
** Invoke load:defaults (first_time)
** Execute load:defaults
cap aborted!
NoMethodError: undefined method `instance' for Capistrano::Configuration:Class
/home/denis/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler/capistrano.rb:12:in `'
config/deploy.rb:13:in `require'
config/deploy.rb:13:in `'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capistrano-3.4.0/lib/capistrano/setup.rb:14:in `load'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capistrano-3.4.0/lib/capistrano/setup.rb:14:in `block (2 levels) in '
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:240:in `call'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:240:in `block in execute'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:235:in `each'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:235:in `execute'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:172:in `invoke_with_call_chain'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/task.rb:165:in `invoke'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:150:in `invoke_task'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `block (2 levels) in top_level'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `each'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:106:in `block in top_level'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:115:in `run_with_threads'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:100:in `top_level'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:78:in `block in run'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rake/application.rb:75:in `run'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capistrano-3.4.0/lib/capistrano/application.rb:15:in `run'
/home/denis/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/capistrano-3.4.0/bin/cap:3:in `'
/home/denis/.rbenv/versions/2.2.2/bin/cap:23:in `load'
/home/denis/.rbenv/versions/2.2.2/bin/cap:23:in `'
Tasks: TOP => production

My Capfile

require 'capistrano/setup'
require 'capistrano/deploy'

require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

Gemfile

gem 'capistrano
gem 'capistrano-bundler'
gem 'capistrano-rails'
gem 'capistrano-rbenv'

My deploy.rb

require 'bundler/capistrano'
load 'deploy/assets'
set :repository,  "git@bitbucket.org:test/test.git"

3 回答

  • 1

    将以下内容添加到Capfile而不是config / deploy.rb:

    require 'bundler/capistrano'

  • 0

    您的deploy.rb不应具有require或load行 . 备份配置,删除 Capfileconfig/deploy.rbconfig/deploy/* ,然后运行 cap install . 修改生成的配置文件以尝试 .

  • 1

    确保您直接在项目目录下有Capfile . 如果Capfile包含像 require 'bundler/capistrano' 这样的行

    删除它,它应该工作 .

相关问题