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}