我最近将我的capistrano gem更新为版本3.1.0,从那时起cap production deploy
传递正常,但目标deploy:restart
未被调用。
我的服务器部署在Amazon EC2上的Ubuntu 12.10上。
为什么会这样?
答案 0 :(得分:42)
Capistrano 3默认不再运行该任务,因为许多应用服务器不需要它。将其添加到config / deploy.rb:
after 'deploy:publishing', 'deploy:restart'
突破变化:
deploy:restart
任务默认情况下不再运行。 在此版本中,在每个部署上重新启动应用程序的开发人员需要在其部署流程中声明它(例如after 'deploy:publishing', 'deploy:restart'
)。请查看4e6523e以获取更多信息。 (@kirs)
答案 1 :(得分:1)
如果您使用的是名称空间,您还可以执行以下操作:
namespace :deploy do
desc "My description"
task :my_task do
#do something
end
after :publishing, :my_task
end
答案 2 :(得分:0)
就我而言,在'production.rb'文件中,我有了roles: %w{web, app, db}
,它可以防止文件“deploy.rb”中的块on roles(:app), in: :sequence, wait: 5 do
正确执行。你看,它需要是{{} 1}}