如何使用圆形CI重新启动nginx?

时间:2015-03-16 12:59:31

标签: ruby-on-rails nginx circleci

我使用圆形CI部署了rails应用程序,每次提交后,更改都是由圆形CI自动构建的,但我想重新启动nginx服务器,我在circle.yml中添加了“sudo service nginx restart”错误如

error: sudo service nginx restart returned exit code 1

nginx: unrecognized service
Action failed: sudo service nginx restart

我还在config / deploy.rb

中尝试了以下操作
namespace :deploy do
  after :restart, :clear_cache do
    on roles(:web) do
      execute :sudo, "service nginx restart"
    end
  end

还是nginx服务器没有重启?

1 个答案:

答案 0 :(得分:0)

尝试使用circle.yml启动nginx失败,因为该命令将在CI服务器上运行,而不是在您的Web服务器上运行。

不确定为什么尝试使用Capistrano重启失败。

如果你正在使用带有nginx的乘客,另一种在rails应用程序上重启nginx服务器的方法是在app目录中创建/修改tmp/restart.txt文件。

有关说明,请参阅3.4. Redeploying (restarting the Rack application) How do i make nginx and passenger restart automatically after a deploy

config/deploy.rb中的以下代码段实现了逻辑:

namespace :deploy do
  desc "Restart Application"
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute :touch, release_path.join('tmp/restart.txt')
    end 
  end 
end