I'm having some trouble where it seems that capistrano deploys just fine
(with cap deploy), however, the site is never refreshed. After some
checking it appears that capistrano in fact restarts the mongrels, but
not for the current release?
This is the relevant piece from my config/deploy.rb:
task :restart, :roles => :app do
# stop mongrel clusters for previous release and start for current
run "cd #{previous_release} && mongrel_rails cluster::stop"
run "sleep 5"
run "cd #{current_release} && mongrel_rails cluster::start"
end
Also, on the server script/process/reaper seems to restart an old
release as well. Anyone seen this?
on 09.04.2008 09:23
on 10.04.2008 12:31
Mongrel configuration exists when do restart task? Any log? If you didn't wants play with previous and current release, you can use shared path to maintain pids and configurations beetwen releases. Regards Christian Johansen escribió: > run "sleep 5" > run "cd #{current_release} && mongrel_rails cluster::start" > end > > Also, on the server script/process/reaper seems to restart an old > release as well. Anyone seen this? > -- Rafael Garcia Ortega
on 11.04.2008 13:46
Does the mongrel processes pids change? Would you post your whole cofing/deploy.rb file? -- AnibalRojas http://hasmanydevelopers.com http://rubycorner.com http://anibal.rojas.com.ve On Apr 9, 3:23 am, Christian Johansen <ruby-forum-incom...@andreas-
on 11.04.2008 14:04
Thanks for your help. The mongrel pids do indeed change, but no change is visible on my webapp. This is my complete config/deploy.rb: set :application, "myapp" set :repository, "https://svn.myserver.com/repos/myapp/trunk" # If you aren't deploying to /u/apps/#{application} on the target # servers (which is the default), you can specify the actual location # via the :deploy_to variable: # set :deploy_to, "/var/www/#{application}" set :deploy_to, "/var/www/mysite/#{application}" set :user, "christian" # If you aren't using Subversion to manage your source code, specify # your SCM below: # set :scm, :subversion role :app, "myserver.com" role :web, "myserver.com" role :db, "myserver.com", :primary => true task :restart, :roles => :app do # stop mongrel clusters for previous release and start for current run "cd #{previous_release} && mongrel_rails cluster::stop" run "sleep 5" run "cd #{current_release} && mongrel_rails cluster::start" end # This fixed frustrating ’sudo: no passwd entry for app’ error when cap was trying # to run the process start command as ‘app’ for some reason set :runner, 'christian' # Currently not using this #task :copy_database_yml, :roles => :app do # db_config = "#{shared_path}/config/database.yml.production" # run "cp #{db_config} #{release_path}/config/database.yml" #end # #after "deploy:update_code", :copy_database_yml Aníbal Rojas wrote: > Does the mongrel processes pids change? > > Would you post your whole cofing/deploy.rb file? > > -- > AnibalRojas > http://hasmanydevelopers.com > http://rubycorner.com > http://anibal.rojas.com.ve > > On Apr 9, 3:23 am, Christian Johansen <ruby-forum-incom...@andreas-
on 11.04.2008 15:02
Note that the restart task needs to be in the deploy namespace:
namespace :deploy do
task :restart, :roles => :app do
# ...
end
end
Otherwise, you're not overriding deploy:restart, as you probably are
intending.
- Jamis
on 11.04.2008 15:15
Jamis, thank you, now my restart task is running atleast. But now I have: ERROR RUNNING 'cluster::stop': Plugin /cluster::stop does not exist in category /commands so, I thought maybe I could change the task, but I don't know which program to run to stop my three mongrels :) I start the rascals using script/spin which contains: #!/bin/sh script/process/spawner -a 127.0.0.1 -p 8000 -i 3 script/process/reaper only seems to restart, so I don't really know what command to use to stop the old application, move to the new release folder and then start the servers again. Any ideas? Jamis Buck wrote: > Note that the restart task needs to be in the deploy namespace: > > namespace :deploy do > task :restart, :roles => :app do > # ... > end > end > > Otherwise, you're not overriding deploy:restart, as you probably are > intending. > > - Jamis