首页 文章

Capistrano appserver作为没有sudo的服务

提问于
浏览
0

有没有人有一个很好的方法来管理使用capistrano的appserver?这似乎是留给你自己的设备情况,我还没有看到它的一个很好的例子 .

我看到基本上有两列思路 .

1)将其作为部署用户进行守护 . 优点,没有系统服务等,所以没有权限问题 . 然而,这就好像机器重新启动一样,导致系统崩溃 .

2)Init脚本 . 安装init脚本并使用它来管理服务器 . 这将在重新启动后继续存在,并允许说/etc/init.d/myapp重启/停止/启动控制如果你ssh'd . 这是不错的除了两个原因

  • 大多数人使用sudo从capistrano管理它(我觉得capistrano 3不鼓励这个)

  • 我还没有看到一个与独角兽合作的好的暴发户或类似剧本 .

我正在尝试使用nginx独角兽 . Nginx我完美地设定了 . 我已经为站点添加了一个站点 - 可用并指向/ appserver / public上游 . 这很好用,资产预编译工作很棒,一切都很顺利,我可以重新部署并获得新资产 . 它很简单,适用于OS init进程 . 但是我很幸运,因为nginx配置基本上是静态的,而nginx只需要提供静态文件 .

appserver .. unicorn / thin / puma /无论是绊倒我的那个部分 . 我希望它重新加载cap部署的应用程序,但我很难找到一个足够好的例子 .

综上所述 . 使用rails应用程序的简单方法是重新启动,并在调用cap deploy时重新加载

1 回答

  • 1
    task :restart do
      on roles(:app), in: :sequence, wait: 5 do
        execute :touch, release_path.join('tmp/restart.txt')
      end
    end
    

    的Gemfile:

    gem 'capistrano3-puma'
    

    Capfile:

    require 'capistrano/puma'
    

相关问题