2012-08-09 5 views
1

로컬 컴퓨터에서 Capistrano를 통해 VPS로 Rails 응용 프로그램을 배포하려고합니다. 나는 그것을 Gemfile에 포함시키고 '번들'을 실행함으로써 Capistrano를 설치했다. 그 다음 나는 달려 들었다. ff를 Capfile에 추가했습니다.로컬 컴퓨터에서 VPS로 Capistrano로 배포

$:.unshift(File.expand_path('./lib', ENV['rvm_path'])) 
require "rvm/capistrano" 
set :rvm_ruby_string, '[email protected]' 

지금은 deploy.rb가 붙어있어서 파일에 어떤 값을 넣어야하는지 잘 모르겠습니다. Github 또는 다른 온라인 저장소에서 코드를 호스팅하지 않으면 set : repository 옵션에 무엇을 넣어야합니까? 정확히 무엇이 설정되어 있습니까? 도메인? 여기에 내 VPS 시스템의 IP 주소를 사용해야합니까? Btw, http://infinite-sushi.com/2011/01/deploying-a-rails-app-to-a-linode-box/에서 자습서를 수행 중이며 deploy.rb 샘플이 있습니다.

set :user, 'deploy' 
set :domain, 'foo.bar.us' 
set :application, "my_web_app" 

set :repository, "[email protected]:foo/repo.git" # Your clone URL 
set :scm, "git" 
set :branch, "master" 
set :scm_verbose, true 
set :deploy_via, :remote_cache 
set :scm_passphrase, "password" # The deploy user's password 
set :deploy_to, "/home/#{user}/#{domain}" 
set :use_sudo, false 

default_run_options[:pty] = true 
ssh_options[:forward_agent] = true 

role :web, domain       # Your HTTP server, Apache/etc 
role :app, domain       # This may be the same as your `Web` server 
role :db, domain, :primary => true # This is where Rails migrations will run 

namespace :deploy do 
    task :start do ; end 
    task :stop do ; end 
    task :restart, :roles => :app, :except => { :no_release => true } do 
    run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" 
    end 
end 
+0

그래서 귀하의 저장소가 로컬로 설정되어 있습니까? –

답변

1
set :scm, :none 
set :deploy_via, :rsync_with_remote_cache 

또한 :deploy_via, :copy을 시도 할 수 있습니다. :domain 옵션의 경우, 사용자가 따라 한 예에서는 서버에 액세스 할 때뿐만 아니라 이름 지정에 대해서도이를 사용합니다. 지금은 서버로 IP 주소를 하드 코딩하는 것이 좋습니다. 나는 그것이 건조하지 건 알지만 클러스터의 크기가 커질 경우, 당신은이 값을 변경할 수 있습니다 (또는 지금 변수에 IP를 설정 - 정말 중요하지 않습니다) :

set :deploy_to, "/home/#{user}/#{application}" 
role :web, "1.2.3.4" 
role :app, ["1.2.3.5", "1.2.3.6"] 
+0

그래서 : scm을 : none으로 설정 한 후에 : 저장소와 : 브랜치 라인을 제거 할 수 있습니까? 어때? : scm_verbose 및 : scm_passphrase? 미안하지만, 배포에 있어서는 정말 초보자입니다. – maru

+0

예, 이것들은 다양한 카피 스트라노 작업에서 사용되는 변수 일 뿐이므로이를 자유롭게 제거하고 배포를 시도하고 중단되는 부분이 있는지 확인하십시오. scm을 사용하지 않는 경우, 분기 및 기타 scm_ * 변수를 안전하게 제거 할 수 있습니다. –

+0

set : scm, : none을 사용하여 시도했지만이 오류가 발생합니다. '응용 프로그램의 코드를 저장하는 저장소를 지정하십시오. 저장소 :'foo '. 그래서 내가 시도한 것은 "set : scm, : git set : repository,"~/Sites/# {application} /. git " set : branch,"master "를 사용하는 것이지만, "ruby-1.9.3-p194 '" – maru

관련 문제