Capistrano 3 не перезапускается после развертывания
Недавно я обновил capistrano gem до версии 3.1.0, и с тех пор cap production deploy
проходит отлично, но цель deploy:restart
не вызывается.
Мой сервер развернут на Ubuntu 12.10 на Amazon EC2.
Почему это может быть?
Ответы
Ответ 1
Capistrano 3 больше не запускает эту задачу по умолчанию, так как многие серверы приложений этого не требуют. Добавьте это в свой config/deploy.rb:
after 'deploy:publishing', 'deploy:restart'
Из примечаний к выпуску:
Нарушение изменений:
-
deploy:restart
задача больше не выполняется по умолчанию. Из этой версии разработчикам, которые перезагружают приложение для каждого развертывания, необходимо объявить его в потоке развертывания (например, after
'deploy:publishing', 'deploy:restart'
).
Пожалуйста, проверьте 4e6523e для получения дополнительной информации. (@kirs)
Ответ 2
Если вы используете пространства имен, вы также можете сделать следующее:
namespace :deploy do
desc "My description"
task :my_task do
#do something
end
after :publishing, :my_task
end
Ответ 3
В моем случае в файле 'production.rb' у меня был этот roles: %w{web, app, db}
, который предотвратил выполнение блока on roles(:app), in: :sequence, wait: 5 do
в файле "deploy.rb" из правильного исполнения. Вы видите, что это должно быть roles: %w{web app db}