Performing a Capistrano deploy

Hello,

I'm currently trying to figure out how to do a proper Capistrano deploy from my system to the server that needs to be hosting my Ruby on Rails application. A small caveat that I had to tackle first was getting the source code over without the use of git or svn. After searching a bit, I found that Capistrano was able to ftp the stuff over through the shell, so that's working currently.

The problems I'm encountering however, is that I cannot start up my Thin server cluster after a deploy because bundler keeps telling me that it cannot locate the GemFile for starting up Thin. Another issue I seem to be encountering is the migrations not running after a deploy for some reason. Below is my deploy.rb file which is sitting in the /config folder of my Ruby on Rails application:

require "bundler/capistrano" default_run_options[:pty] = true

# define the application and Version Control settings set :application, "ESCO Matching Demo" set :repository, "svn://192.168.33.70/RubyOnRails/ESCO" set :deploy_via, :copy set :user, "kurt" set :deploy_to, "/var/www/apps"

# Tell Capistrano the servers it can play with

server "85.255.206.157", :app, :web, :db, :primary => true

# Generate an additional task to fire up the thin clusters namespace :deploy do   desc "Start the Thin processes"   task :start do     run <<-CMD       cd /var/www/apps/current; bundle exec thin start -C config/ thin.yml     CMD   end

  desc "Stop the Thin processes"   task :stop do     run <<-CMD       cd /var/www/apps/current; bundle exec thin stop -C config/ thin.yml     CMD   end

  desc "Restart the Thin processes"   task :restart do     run <<-CMD       cd /var/www/apps/current; bundle exec thin restart -C config/ thin.yml     CMD   end

  desc "Create a symlink from the public/cvs folder to the shared/ system/cvs folder"   task :update_cv_assets, :except => {:no_release => true} do     sudo "ln -s /var/www/shared/cvs /var/www/apps/current/public/cvs"   end end

# Define all the tasks that need to be running manually after Capistrano is finished. after "deploy:finalize_update", "deploy:update_cv_assets" after "deploy", "deploy:migrate"

I think everything to perform a deloy wiht Capistrano should be inside the file. If anything is missing, please let me know so i can make adjustments to it. I'm pretty new to this Capistrano stuff, so I'll probably have some errors here and there. As mentioned above, pushing over the files seems to work without problems as the source gets updated and refreshing the site after a deploy shows the new page.

However after a cap deploy command, when Capistrano tries to run the restart task on thin, it complains about the gemFile not beeing found and the tasts are aborted and no subsequent tasks are performed. Some people said to check gem_home etc, when echoing them on the server they're defined and return the correct path to my gems etc.

Another issue is that I can't seem to start up the Thin clusters anymore after the recent deploy. It complains either about missing pids or it only starts up a single thin instance instead of the cluster. Below is the yaml file containing the config of my cluster:

Hello,

# define the application and Version Control settings set :application, "ESCO Matching Demo"

I'd try using an application name without any spaces - I wouldn't be completely surprised if somewhere capistrano wasn't quoting a string properly.

However after a cap deploy command, when Capistrano tries to run the restart task on thin, it complains about the gemFile not beeing found and the tasts are aborted and no subsequent tasks are performed. Some people said to check gem_home etc, when echoing them on the server they're defined and return the correct path to my gems etc.

is the GemFile there? Have you inspected what capistrano has produced on your server to see if it looks ok?

Fred