2011-01-11 2 views
3

Capistrano와 함께 Dreamhost에 로컬로 작동하는 Rails 3 응용 프로그램을 배포하려고합니다. 로컬 앱 루트에 'cap deploy -v'를 실행하면 '번들 설치'가 중단되기 전에 지금까지 얻을 수 있습니다.Capistrano를 사용하여 Rails 3 응용 프로그램을 Dreamhost에 배포 할 때 번들 설치가 실패합니다.

** 트랜잭션 ** [abunchofletters.co.uk :: 아웃] [email protected]'s 시작 암호 : 암호 : ** [다음은 오류 메시지의 끝 abunchofletters.co.uk :: out] ** [abunchofletters.co.uk :: out] HEAD가 62f9cdb에 있습니다. Dreamhost에 처음으로 배포 ** [out :: abunchofletters.co.uk] sh : 번들 : 명령이 없습니다. 찾았습니다 * [배포 : update_code] 롤백 실패 : "sh -c"번들 설치 --gemfile /home/my_username/abunchofletters.co.uk/releases/20110111100145/gemfile --path/home/my_username/abunchofletters .co.uk/공유/내 서버에 SSH, 그리고 보석의 목록을 확인할 때 그러나 abunchofletters.co.uk

에 --deployment --quiet --without 개발 테스트 '를'번들, 들러 1.0.7로 표시됩니다 설치 [또한 Ruby 1.8.7, Rails 3.0.3, RubyGems 1.3.6]을 실행합니다. 이것은 레일스 애플리케이션과 카피스트라노를 배치 한 첫 번째 경험이므로 우스꽝스럽지 않지만 일부 경로 나 변수가 올바르게 설정되지 않았을 것입니다. 여기

은 내 deploy.rb [너무 구식이 될 수 http://railstips.org/blog/archives/2008/12/14/deploying-rails-on-dreamhost-with-passenger/ 다음에서 생성]을 것 :

require "bundler/capistrano" # http://gembundler.com/deploying.html 

default_run_options[:pty] = true 

# be sure to change these 
set :user,  'my_username' 
set :domain,  'abunchofletters.co.uk' 
set :application, 'abunchofletters' 

# the rest should be good 
set :repository, "#{user}@#{domain}:git/#{application}.git" 
set :deploy_to, "/home/#{user}/#{domain}" 
set :deploy_via, :remote_cache 
set :scm, 'git' 
set :branch, 'master' 
set :git_shallow_clone, 1 
set :scm_verbose, true 
set :use_sudo, false 

server domain, :app, :web 
role :db, domain, :primary => true 

namespace :deploy do 
    task :restart do 
    run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

모든 아이디어를 어떻게 진행? 더 많은 정보가 필요하다면 나에게 메시지를 보내면 내가 제공 할 것이다.

답변

0

필자가 생각해 낸 해결책에 너무 만족하지는 않지만 배포를 위해 배포 및 번들러가 필요합니다. 번들 잠금/잠금 해제는 이제 사용되지 않습니다 있지만, http://grigio.org/deploy_rails_3_passenger_apache_dreamhost : 보석 작업 여기 보였다 : (가)

#require "bundler/capistrano" 

default_run_options[:pty] = true 

# be sure to change these 
set :user,  'futureproof' 
set :domain,  'abunchofletters.co.uk' 
set :application, 'abunchofletters' 

# the rest should be good 
set :repository, "#{user}@#{domain}:git/#{application}.git" 
set :deploy_to, "/home/#{user}/#{domain}" 
set :deploy_via, :remote_cache 
set :shared_path, "/home/#{user}/.gems" 
set :scm, 'git' 
set :branch, 'master' 
set :git_shallow_clone, 1 
set :scm_verbose, true 
set :use_sudo, false 

server domain, :app, :web 
role :db, domain, :primary => true 

namespace :deploy do 
    desc "expand the gems" 
    task :gems, :roles => :web, :except => { :no_release => true } do 
    run "cd #{current_path}; #{shared_path}/bin/bundle unlock" 
    run "cd #{current_path}; nice -19 #{shared_path}/bin/bundle install vendor/" # nice -19 is very important otherwise DH will kill the process! 
    run "cd #{current_path}; #{shared_path}/bin/bundle lock" 
    end 

    task :restart do 
    run "touch #{current_path}/tmp/restart.txt" 
    end 
end 

:

여기 내 업데이트 deploy.rb입니다. 번들 설치/업데이트로 간단히 대체 할 수는 있지만 사용 중지 된 기능은 오늘 밤에 사용합니다.