16

我最近将我的 gem 更新到 3.1.0 版,从那时起cap production deploy就可以正常运行,但deploy:restart没有调用目标。

我的服务器部署在 Amazon EC2 上的 Ubuntu 12.10 上。

为什么会这样?

4

3 回答 3

43

Capistrano 3 默认不再运行该任务,因为许多应用服务器不需要它。将此添加到您的 config/deploy.rb 中:

after 'deploy:publishing', 'deploy:restart'

发行说明

重大变化:

  • deploy:restart默认情况下不再运行任务。从这个版本开始,在每次部署时重新启动应用程序的开发人员需要在他们的部署流程中声明它(例如after 'deploy:publishing', 'deploy:restart')。

    请查看4e6523e了解更多信息。(@kirs)

于 2014-02-25T17:25:32.740 回答
1

如果您使用命名空间,您还可以执行以下操作:

namespace :deploy do
  desc "My description"
  task :my_task do
    #do something
  end
  after :publishing, :my_task
end
于 2014-11-25T21:56:35.940 回答
0

就我而言,在文件“production.rb”中,我有这个roles: %w{web, app, db}阻止on roles(:app), in: :sequence, wait: 5 do文件“deploy.rb”中的块正确执行。你看,它需要roles: %w{web app db}

于 2017-05-01T20:57:28.383 回答