使用Capistrano进行部署 - 仅针对匹配的服务器运行

Lin*_*der 10 ruby capistrano ruby-on-rails ruby-on-rails-3

我试图使用Capistrano部署我的应用程序,但我收到此错误消息:

`deploy:setup'仅对匹配{:except => {:no_release => true}}的服务器运行,但没有匹配的服务器

运行此命令时:

bundle exec cap deploy:setup
Run Code Online (Sandbox Code Playgroud)

这是我的deploy.rb文件.

set :application, "example.com"
set :repository, "git@github.com:username/repo.git"
set :use_sudo, false
set :scm, :git
set :web, application
set :app, application
set :db, application
set :branch, "master"
set :user, "webmaster"
set :deploy_to,  "/opt/www/#{application}"
set :deploy_via, :remote_cache
set :domain, application
set :port, 2222

set :bundler_cmd, "bundle install --deployment --without=development,test"
ssh_options[:paranoid] = false

namespace :deploy do
  task :start do ; end
  task :stop do ; end

  task :restart_stalker do
    run "cd #{deploy_to}/current && thor stalker:kill && stalker:init"
  end

  task :restart, :roles => :app, :except => { :no_release => true } do
    run "cd #{deploy_to}/current && touch tmp/restart.txt"
  end

  after "bundler_cmd", "deploy:restart_stalker"
end
Run Code Online (Sandbox Code Playgroud)

我正在使用Rails 3.

Kel*_*vin 9

您需要定义一些角色.例如:

role :app, 'myapphostname'
role :web, 'mywebhostname'
Run Code Online (Sandbox Code Playgroud)

您似乎使用"set"而不是"role",但您应该在进行更改之前确认这一点.