使用Capistrano部署rails app

时间:2012-10-05 10:54:58

标签: ruby-on-rails ruby capistrano cpanel

我正在尝试通过Capistrano将名为Blog的rails应用程序部署到我的网站。我在/ rails_app / Blog /的cPanel中创建了一个Rails应用程序,并删除了生成的框架代码。

当我在终端中输入此命令时

 cap deploy:setup

我收到此错误消息

USER@USER-PC ~/documents/Aptana Studio 3 Workspace/Blog
$ cap deploy:setup
* executing `deploy:setup'
* executing "sudo -p 'sudo password: ' mkdir -p /rails_app/Blog/ /rails_app/Bl
og/releases /rails_app/Blog/shared /rails_app/Blog/shared/system /rails_app/Blog
/shared/log /rails_app/Blog/shared/pids"
servers: ["mydomain.co.nz"]
connection failed for: mydomain.co.nz (Errno::ETIMEDOUT: A connection attempt fail
ed because the connected party did not properly respond after a period of time,
or established connection failed because connected host has failed to respond. -
connect(2))

这是我的deploy.rb文件配置设置

set :application, "mydomain.co.nz"
set :repository,  "set your repository location here"

set :scm, :subversion
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`

# These are not not part of the defaults
set :port, 12002
set :deploy_to, "/rails_app/Blog/"
#

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

1 个答案:

答案 0 :(得分:1)

试试这个,这是适合我的deploy.rb文件的例子

require "bundler/capistrano"
set :application, "testcapistrano"

set :rvm_ruby_string, "ruby-1.9.3-p194@testcapistrano" 
require "rvm/capistrano"
set :rvm_type, :user
set :rvm_install_ruby, :install
set :repository,  "xyz" 
set :scm, :git
# Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none`
role :web, "testcapistrano.dipak.cs"       # Your HTTP server, Apache/etc
role :app, "testcapistrano.dipak.cs"       # This may be the same as your  `Web` server
role :db,  "testcapistrano.dipak.cs", :primary => true # This is where Rails migrations will run

default_run_options[:pty] = true
ssh_options[:forward_agent] = true
set :deploy_to, "/dipak/capistron/"
set :deploy_via, :remote_cache
set :user, "your username"
set :password, "password"
set :use_sudo, false
set :keep_releases, 5
before 'deploy:setup', 'rvm:install_ruby'

# tasks
namespace :deploy do
  task :start, :roles => :app do
   run "touch #{current_path}/tmp/restart.txt"
  end
  task :stop, :roles => :app do
   # Do nothing.
  end

  desc "Restart Application"
  task :restart, :roles => :app do
    run "touch #{current_path}/tmp/restart.txt"
  end
end