【问题标题】:Capistrano appserver as service without sudoCapistrano 应用服务器作为没有 sudo 的服务
【发布时间】:2014-03-31 10:48:52
【问题描述】:

有没有人用 capistrano 管理 appserver 的好方法?这似乎是您自己的设备情况,我还没有看到一个很好的例子。

我看到的基本上有两种思路。

1) 将其守护为部署用户。优点,没有系统服务等,所以没有权限问题。但是,这就像机器重新启动一样,是系统崩溃了。

2) 初始化脚本。安装初始化脚本并使用它来管理服务器。这将在重新启动后继续存在,并允许说 /etc/init.d/myapp restart/stop/start 控制,如果您 ssh 进入。除了两个原因之外,这很不错

  • 大多数人使用 sudo 从 capistrano 管理它(我觉得 capistrano 3 不鼓励这样做)
  • 我还没有看到一个好的暴发户或类似的脚本可以与独角兽一起使用。

我正在尝试使用 nginx+unicorn。 Nginx 我已经设置得很完美了。我已将站点添加到可用站点并将上游指向 /appserver/public。这很好用,资产预编译效果很好,一切都很好,我可以重新部署并获得新资产。这很简单,适用于操作系统初始化进程。不过我很幸运,因为 nginx 配置基本上是静态的,而 nginx 只需要提供静态文件。

appserver.. unicorn/thin/puma/ 不管是什么部分让我绊倒。我希望它在 cap deploy 上重新加载应用程序,但我很难找到一个足够好的例子。

总结。什么是让 rails 应用程序在重启后仍然存在并在调用 cap deploy 时重新加载的简单方法

【问题讨论】:

    标签: ruby-on-rails ruby capistrano unicorn


    【解决方案1】:
    1. 如果您将Passengernginxunicornthin 一起使用...您可以在部署后通过touching tmp/restart.txt file 重新启动:

      task :restart do
        on roles(:app), in: :sequence, wait: 5 do
          execute :touch, release_path.join('tmp/restart.txt')
        end
      end
      
    2. 要在部署后重新加载puma 服务器,请使用capistrano3-puma

      宝石文件:

      gem 'capistrano3-puma'
      

      Capfile:

      require 'capistrano/puma'
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2019-09-04
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多