Ответ 1
Вам нужно определить некоторые роли. Например:.
role :app, 'myapphostname'
role :web, 'mywebhostname'
Кажется, вы использовали "set" вместо "role", но вы должны подтвердить это, прежде чем вносить изменения.
Я пытаюсь развернуть свое приложение с помощью 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.
Вам нужно определить некоторые роли. Например:.
role :app, 'myapphostname'
role :web, 'mywebhostname'
Кажется, вы использовали "set" вместо "role", но вы должны подтвердить это, прежде чем вносить изменения.
Большинство людей, вероятно, используют многоступенчатую систему с capistrano, поэтому вы не ставите свои роли в deploy.rb, поэтому, если вы добавили роли, специфичные для среды, в config/deploy/# env_name.rb, не забудьте добавить их в конфигурацию /deploy.rb
set :stages, %w(#env_name1, #env_name2...)
require 'capistrano/ext/multistage'
и убедитесь, что установлен capistrano-ext gem.
Кажется, вы уже настроили свой сервер с помощью bundle exec cap deploy:setup
.
Если это случай, вы должны запустить bundle exec cap deploy
.
Я собираюсь оставить здесь ответ, который помог мне в том, что, когда ни один из предложенных ответов здесь или где-то еще не поможет мне, я провел дни, изучая эту проблему, прежде чем нашел исправление.
Удостоверьтесь, что при использовании многоступенчатой конфигурации файлы конфигурации, специфичные для среды (например, config/deploy/environment.rb
), являются единственными файлами в каталоге config/deploy
. У меня была среда, dev
, которую я тоже не смог развернуть, оказалось, что какой-то был пустой пустой файл config/deploy/dev
, который загружался вместо моего файла config/deploy/dev.rb
, в результате чего каждое развертывание в этой среде терпит неудачу с опубликованным ошибка.