【发布时间】:2014-02-25 16:57:52
【问题描述】:
我最近将我的 capistrano gem 更新到 3.1.0 版,从那时起 cap production deploy 可以正常通过,但目标 deploy:restart 没有被调用。
我的服务器部署在 Amazon EC2 上的 Ubuntu 12.10 上。
为什么会这样?
【问题讨论】:
标签: capistrano ruby capistrano3
我最近将我的 capistrano gem 更新到 3.1.0 版,从那时起 cap production deploy 可以正常通过,但目标 deploy:restart 没有被调用。
我的服务器部署在 Amazon EC2 上的 Ubuntu 12.10 上。
为什么会这样?
【问题讨论】:
标签: capistrano ruby capistrano3
默认情况下,Capistrano 3 不再运行该任务,因为许多应用服务器不需要它。将此添加到您的 config/deploy.rb:
after 'deploy:publishing', 'deploy:restart'
重大变化:
deploy:restart任务默认不再运行。 从这个版本开始,在每次部署时重新启动应用程序的开发人员需要在他们的部署流程中声明它(例如after 'deploy:publishing', 'deploy:restart')。请查看4e6523e 了解更多信息。 (@kirs)
【讨论】:
如果您使用命名空间,您还可以执行以下操作:
namespace :deploy do
desc "My description"
task :my_task do
#do something
end
after :publishing, :my_task
end
【讨论】:
在我的情况下,在文件“production.rb”中我有这个roles: %w{web, app, db},它阻止文件“deploy.rb”中的块on roles(:app), in: :sequence, wait: 5 do正确执行。你看,它必须是roles: %w{web app db}
【讨论】: