Méthode non définie `instance 'pour Capistrano :: Configuration: Class
J'essaie d'obtenir Capistrano et en cours d'exécution pour la première fois dans une application rails. J'ai un serveur linux Ubuntu 12.04, nginx, la licorne et les rails, cependant, j'ai l'impression de courir dans un certain nombre de questions. Je suis également à l'aide de Capistrano 3.0.0, rails 3.2.14, bundler 1.4.0 & ruby 1.9.3p448 à l'aide de RVM.
Je n'ai qu'une étape de production mis en place et à ce point dans le temps, et je me préoccupe seulement de Capistrano communiquer avec mon serveur et en poussant mon code à partir de github ( Pas de migrations et d'intégration de etc pour l'instant).
Quand j'ai essayer la commande cap production deploy:check
ou cap production deploy:setup
( ce qui semble être obsolète?) avec la configuration ci-dessous, j'ai le msg d'erreur suivant:
Je ne suis pas vraiment sûr où commencer sur cette erreur, et google ne suggère pas beaucoup. J'ai essayé d'ajouter le rvm-capistrano
gem, mais en vain. Comment puis-je modifier mon code pour résoudre cette erreur?
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)
déployer.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'
déployer ou de la 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 }
MODIFIER Après avoir regardé la ligne incriminée dans capistrano.rb dans bundler il mentionne à ajouter besoin d'un système de regroupement/déploiement " de déployer.rb, ce qui a semblé se débarrasser de la capistrano exemple d'erreur.
NOTE Rétrogradé à capistrano 2.15.5 qui se débarrasser des erreurs.
source d'informationauteur dodgerogers747
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, il y avait un couple de modifications apportées à capistrano 3.
Voir les notes de version : http://www.capistranorb.com/2013/06/01/release-announcement.html
Également passer par le fichier readme.
https://github.com/capistrano/capistrano/blob/master/README.md
Capistrano 3 a déménagé bundler l'intégration dans une gemme.Pour résoudre votre problème :
Oh, et si vous ne voulez pas utiliser bundler encore, de supprimer la première ligne : l'exigent "bundler/capistrano". c'est très simple.
Aussi, vous ne pouvez pas utiliser des variables comme le précédent façon maintenant.Au lieu de directement de le lire, utiliser fetch(:application) pour lire une variable.
Je serait plus facile pour vous de revenir à capistrano v2.
J'imagine que ce problème est dû à Bundler 1.3.5 n'est pas compatible avec la dernière version de Capistrano. Essayez de mettre à niveau le système de regroupement pré-versions:
gem install bundler --pre
.J'ai remarqué également que vous êtes à l'aide d'une très vieille version de Rails 3.2, ce qui est probablement vulnérables à des failles de sécurité. Je voudrais vraiment vous recommandons fortement la mise à niveau de version de Rails à quelque chose de plus récent, comme des Rails 3.2.14.
Pour Capistrano 3, ils recommandent d'utiliser des
http://github.com/capistrano/bundler
Sa mentionnés ici
https://github.com/bundler/bundler/blob/master/lib/bundler/capistrano.rb