【问题标题】:NoMethodError: undefined method `instance' for Capistrano::Configuration:ClassNoMethodError:Capistrano::Configuration:Class 的未定义方法“实例”
【发布时间】:2015-12-28 19:24:27
【问题描述】:

我在部署时遇到了一些问题。 导轨 4.2.4 卡皮斯特拉诺 3.4.0 我不明白出了什么问题。有人可以帮帮我吗?

$ bundle exec cap production deploy --trace
** 调用生产(first_time)
** 执行生产
** 调用负载:默认值(first_time)
** 执行加载:默认值
帽子流产了!
NoMethodError: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个级别) 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:在“执行”中
/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:在“运行”中
/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 `'
任务:TOP => 生产

我的 Capfile

需要'capistrano/设置' 需要“capistrano/部署” 需要'capistrano/rbenv' 需要'capistrano/捆绑器' 需要'capistrano/rails/assets' 需要'capistrano/rails/迁移' Dir.glob('lib/capistrano/tasks/*.rake').each { |r|导入 }

宝石文件

宝石'capistrano
宝石'capistrano-bundler'
宝石'capistrano-rails'
宝石'capistrano-rbenv'

我的 deploy.rb

需要'捆绑器/capistrano'
加载“部署/资产”
设置:存储库,“git@bitbucket.org:test/test.git”

【问题讨论】:

  • 您是如何创建此配置的?如果您使用cap install,这通常不会发生。

标签: ruby-on-rails-4 capistrano3


【解决方案1】:

确保项目目录下直接有 Capfile。如果 Capfile 包含类似require 'bundler/capistrano' 的行

删除它,它应该可以工作。

【讨论】:

    【解决方案2】:

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

    require 'bundler/capistrano'

    【讨论】:

      【解决方案3】:

      您的 deploy.rb 不应包含 require 或 load 行。备份您的配置,删除您的Capfileconfig/deploy.rbconfig/deploy/*,然后运行cap install。修改生成的配置文件来品尝。

      【讨论】:

        猜你喜欢
        • 2013-10-22
        • 1970-01-01
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 2018-09-05
        相关资源
        最近更新 更多