मैं कैपिस्ट्रानो को प्राप्त करने और रेल एप्लिकेशन में पहली बार चलाने की कोशिश कर रहा हूं। मेरे पास उबंटू 12.04, nginx, यूनिकॉर्न और रेल चलने वाला एक लिनक्स सर्वर है, हालांकि, मुझे कुछ मुद्दों में चल रहा है। मैं Capistrano 3.0.0 का उपयोग कर रहा हूं, रेल 3.2.14, बंडलर 1.4.0 & रूबी 1.9.3p448 आरवीएम का उपयोग कर रहा हूं।Capistrano के लिए अपरिभाषित विधि 'उदाहरण' :: कॉन्फ़िगरेशन: कक्षा
मेरे पास केवल एक उत्पादन चरण स्थापित है और इस समय पर और मैं केवल कैपिस्ट्रानो से अपने सर्वर के साथ संवाद कर रहा हूं और मेरा कोड जिथब (अभी तक कोई माइग्रेशन और बंडलिंग इत्यादि) से दबा रहा हूं।
जब मैं कमांड cap production deploy:check
या cap production deploy:setup
नीचे सेटअप के साथ (जिसका बहिष्कार किया जा रहा है?), मैं करने के निम्न त्रुटि संदेश का प्रयास करें:
मैं वास्तव में यकीन है कि जहां इस त्रुटि पर शुरू करने के लिए, और गूगल ज्यादा सुझाव नहीं देता है। मैंने rvm-capistrano
मणि जोड़ने की कोशिश की है लेकिन इसका कोई फायदा नहीं हुआ है। इस त्रुटि को हल करने के लिए मैं अपना कोड कैसे संशोधित कर सकता हूं?
cap aborted!
undefined method `instance' for Capistrano::Configuration:Class
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/bundler-1.4.0.rc.1/lib/bundler/capistrano.rb:11:in `<top (required)>'
config/deploy.rb:1:in `<top (required)>'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/setup.rb:12:in `load'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/setup.rb:12:in `block (2 levels) in <top (required)>'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/lib/capistrano/application.rb:12:in `run'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/gems/capistrano-3.0.0/bin/cap:3:in `<top (required)>'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/bin/cap:23:in `load'
/Users/andrew/.rvm/gems/ruby-1.9.3-p448/bin/cap:23:in `<main>'
Tasks: TOP => production
(See full trace by running task with --trace)
deploy.rb
require "bundler/capistrano"
set :stages, %w(staging production)
set :default_stage, "production"
set :application, "my_app"
set :user, "andrew"
set :scm, "git"
set :repository, "https://github.com/my_repo/#{application}"
set :branch, "master"
set :deploy_to, "/home/rails/#{application}"
set :deploy_via, :remote_cache
set :use_sudo, false
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
after "deploy", "deploy:cleanup" # keep only the last 5 releases
namespace :deploy do
task :restart, roles: :app do
run "touch #{current_path}tmp/restart.txt"
end
end
after :finishing, 'deploy:cleanup'
तैनाती/production.rb
#Real IP ommitted
server "10.2.32.68", :web, :app, :db, primary: true
Capfile
# Load DSL and Setup Up Stages
require 'capistrano/setup'
# Includes default deployment tasks
require 'capistrano/deploy'
# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
# require 'capistrano/bundler'
# require 'capistrano/rails/assets'
# require 'capistrano/rails/migrations'
# Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
संपादित हमलावर एल को देखने के बाद बंडलर के भीतर capistrano.rb में ine यह deploy.rb को 'बंडलर/परिनियोजन' की आवश्यकता जोड़ने के लिए उल्लेख करता है, जो कैपिस्ट्रानो उदाहरण त्रुटि से छुटकारा पाने के लिए प्रतीत होता है।
नोट कैपिस्ट्रानो 2.15.5 में डाउनग्रेड किया गया जो त्रुटियों से छुटकारा पा लिया।
मेरे लिए इसे धन्यवाद, धन्यवाद। – Asciant
मुझे सच में नहीं लगता कि v2 पर वापस जाना आसान है। सबसे पहले कैप इंस्टॉल के साथ शुरू करने की कोशिश करने लायक है (हालांकि अपने deploy.rb, production.rb और कैपिफ़ाइल फ़ाइलों का बैक अप बनाएं!), फिर जब तक यह काम नहीं करता तब तक टुकड़े वापस जोड़ें। इसके अलावा, मैंने capistrano 3.1 का उपयोग करके इस समस्या को ठीक किया। मैं capistrano 3.3.5 पर मुद्दा। – yekta
@yekta 2013 में सवाल पूछा गया था। बस जब टोपी 3 लॉन्च किया गया था। उस समय उस समय v2 पर वापस जाना आसान होता, क्योंकि बहुत मदद नहीं मिली थी। –