我正在尝试通过Capistrano将Rails应用程序从本地计算机部署到VPS。我通过将它包含在Gemfile中并运行'bundle'来安装Capistrano。然后我跑'capify'。并将ff添加到Capfile。
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require "rvm/capistrano"
set :rvm_ruby_string, 'ruby-1.9.2-p136@foobar'
现在,我坚持使用deploy.rb,我不确定应该将哪些值放入文件中。如果我不在Github或其他在线存储库中托管我的代码,我应该在set:repository选项中放置什么?究竟是什么设置:域名?我应该在这里使用我的VPS机器的IP地址吗?顺便说一下,我正在关注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, "git@github.com: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地址。我知道它不是DRY,但是如果你的集群规模增长,你会想要改变这些值(或者现在只将ip设置为变量 - 这并不重要):
set :deploy_to, "/home/#{user}/#{application}"
role :web, "1.2.3.4"
role :app, ["1.2.3.5", "1.2.3.6"]