Развертывание с использованием Capistrano - выполняется только для серверов, соответствующих

Я пытаюсь развернуть свое приложение с помощью Capistrano, но я получаю это сообщение об ошибке:

`deploy: setup 'выполняется только для серверов, соответствующих {: except = > {: no_release = > true}}, но ни один из серверов не соответствует

При выполнении этой команды:

bundle exec cap deploy:setup

Вот мой файл deploy.rb.

set :application, "example.com"
set :repository, "[email protected]: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

Я использую Rails 3.

Ответ 1

Вам нужно определить некоторые роли. Например:.

role :app, 'myapphostname'
role :web, 'mywebhostname'

Кажется, вы использовали "set" вместо "role", но вы должны подтвердить это, прежде чем вносить изменения.

Ответ 2

Большинство людей, вероятно, используют многоступенчатую систему с capistrano, поэтому вы не ставите свои роли в deploy.rb, поэтому, если вы добавили роли, специфичные для среды, в config/deploy/# env_name.rb, не забудьте добавить их в конфигурацию /deploy.rb

set :stages, %w(#env_name1, #env_name2...)
require 'capistrano/ext/multistage'

и убедитесь, что установлен capistrano-ext gem.

Ответ 3

Кажется, вы уже настроили свой сервер с помощью bundle exec cap deploy:setup.

Если это случай, вы должны запустить bundle exec cap deploy.

Ответ 4

Я собираюсь оставить здесь ответ, который помог мне в том, что, когда ни один из предложенных ответов здесь или где-то еще не поможет мне, я провел дни, изучая эту проблему, прежде чем нашел исправление.

Удостоверьтесь, что при использовании многоступенчатой ​​конфигурации файлы конфигурации, специфичные для среды (например, config/deploy/environment.rb), являются единственными файлами в каталоге config/deploy. У меня была среда, dev, которую я тоже не смог развернуть, оказалось, что какой-то был пустой пустой файл config/deploy/dev, который загружался вместо моего файла config/deploy/dev.rb, в результате чего каждое развертывание в этой среде терпит неудачу с опубликованным ошибка.