Estoy intentando implementar una aplicación Ruby On Rails tanto para la puesta en escena como para la producción con Capistrano.Despliegue de Capistrano para puesta en escena y producción
La única diferencia entre los dos es el: dominio y el: Repositorio
He seguido esta guía aquí: https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension
He buscado por la red y todo lo que encuentro son los artículos que, básicamente, un refrito de lo Tengo arriba.
He intentado sólo la creación del: de dominio y: en el repositorio config/deploy/staging.rb y config/deploy/production.rb
He comprobado mis palabras para asegurarse de que te sueltan los sub-directorios correctamente y los nombres de los archivos.
Leyendo este artículo: staging and live app with capistrano parece que debería ser capaz de declarar las diferencias aquí.
Parece que el archivo staging.rb en realidad no se está leyendo. Cambié mi "deploy.rb" para tener una sola palabra jurada como primera línea, "cap deploy" me da el error esperado.
si pongo una sola mala palabra en la primera línea de "staging.rb" o "production.rb" me sale el mismo error:
`method_missing': undefined local variable or method `domain'
La línea en cuestión es:
role :web, domain
porque el valor no se recoge. Pero seguramente debería fallar en la palabra jurada en staging.rb o production.rb y no ejecutar en absoluto?
Si muevo el: dominio y el repositorio al archivo principal "deploy.rb" obtengo el error con la palabra jurada. Parece que no puedo establecer variables en los archivos "staging.rg" y "production.rb", sino simplemente completar tareas.
Cualquier ayuda sería muy apreciada o cree que yo debería tomar el trabajo de entrega de pizza ...
deploy.rb:
require 'capistrano/ext/multistage'
set :stages, %w(production staging)
set :default_stage, "staging"
set :user, 'dave'
set :applicationdir, "~/rails/example.com"
set :scm, 'git'
set :git_enable_submodules, 1 # if you have vendored rails
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true
set :keep_releases, 5
after "deploy:update", "deploy:cleanup"
# roles (servers)
role :web, domain
role :app, domain
role :db, domain, :primary => true
after "deploy", "deploy:migrate"
# deploy config
set :deploy_to, applicationdir
set :deploy_via, :export
# set :rake, 'bundle exec rake'
# additional settings
default_run_options[:pty] = true # Forgo errors when deploying from windows
set :ssh_options, {:forward_agent => true}
#ssh_options[:keys] = %w(/home/user/.ssh/id_rsa) # If you are using ssh_keysset :chmod755, "app config db lib public vendor script script/* public/disp*"set :use_sudo, false
# Passenger
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run " touch #{File.join(current_path,'tmp','restart.txt')}"
end
end
Y mi config/desplegar archivo/staging.rb :
set :domain, 'example.com'
set :repository, "ssh://[email protected]/~/rails/chamonix-mont-blanc.net"
Si pongo el: dominio y: repositorio en el principal "deploy.rb" todo funciona bien y dandy.
Spot on. ¡¡Muchas gracias!! Todo funcionando ¡Le diré a la firma de entrega de pizza que no quiero su trabajo! –