【问题标题】:Upstart node.js app on dokku deployment (Digital Ocean)Dokku 部署上的新贵 node.js 应用程序 (Digital Ocean)
【发布时间】:2015-01-04 01:20:53
【问题描述】:

我使用dokku(Docker 驱动的 mini-Heroku)将我的 node.js 应用程序部署到 Digital Ocean。该应用程序由 Procfile (web: node app.js) 中的命令启动。
怎么用Upstart启动,让它崩溃后自动重启?

添加:
当我使用git push dokku master 进行部署时,我需要它来启动它。

【问题讨论】:

    标签: node.js digital-ocean procfile dokku


    【解决方案1】:

    从 Dokku 0.7.0 开始,它内置了重启策略:

    https://github.com/dokku/dokku/blob/master/docs/deployment/process-management.md#restart-policies

    例如

    # only restart it on Docker restart if it was not manually stopped
    dokku ps:set-restart-policy node-js-app unless-stopped
    

    【讨论】:

      【解决方案2】:

      编辑文件/etc/init/node.conf并放入以下代码。将/opt/node_project/更改为您的项目路径。编辑此文件时您需要是 root 用户,因此请使用 sudo 打开您的编辑器。

      description "Node server"
      author "eagor"
      
      
      # Stanzas
      #
      # Stanzas control when and how a process is started and stopped
      # See a list of stanzas here: http://upstart.ubuntu.com/wiki/Stanzas#respawn
      
      # When to start the service
      start on runlevel [2345]
      
      # When to stop the service
      stop on runlevel [016]
      
      # Automatically restart process if crashed
      respawn
      
      
      script
        echo $$ > /var/run/node.pid;
        exec node /opt/node_project/app.js
      end script
      
      
      post-stop script
        rm -f /var/run/node.pid
      end script
      

      现在您已经为您的进程创建了 Upstart 配置,您可以从命令行启动它:

      $ sudo service node start
      

      Upstart 将监控您的进程,并在它出现故障时重新启动它。

      它还将日志重定向到/var/log/upstart/node.log

      永远

      以上内容直接与节点一起使用,并且会绕过 Dokku。似乎 Upstart 并不是处理这个问题的最佳方式。

      您应该考虑使用forever 模块。将 forever 添加到您的 package.json 依赖项中。然后在你的 Procfile 中使用这个:web: ./node_modules/forever/bin/forever app.js

      【讨论】:

      • 谢谢。当我使用 'git push' 部署时,我可以使用 Upstart 启动它吗?
      • 我认为更适合您的方法是forever 模块。我编辑了我的答案。
      • 我正在考虑它,但在某处读到新贵是更可靠的解决方案。尽管如此,我永远使用它,它正是我需要的。谢谢。
      猜你喜欢
      • 2015-02-24
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2023-04-04
      相关资源
      最近更新 更多