在Openshift上部署Sails.js ... app一遍又一遍地重启

时间:2013-10-15 07:33:07

标签: node.js openshift sails.js

我想将 sails.js (版本0.9.7)应用部署到 Openshift ,但在git push后我得到此日志:

debug: Lowering sails...
DEBUG: Starting child process with 'node app.js'
.
.
.
info: Server lifted in `/var/lib/openshift/525ccaba5973caa65100002b/app-root/runtime/repo`
info: To see your app, visit http://127.7.215.1:8080
info: To shut down Sails, press <CTRL> + C at any time.
.
.
debug: --------------------------------------------------------
debug: :: Tue Oct 15 2013 03:03:56 GMT-0400 (EDT)
debug: 
debug: Environment      : development
debug: Host             : 127.7.215.1
debug: Port             : 8080
debug: --------------------------------------------------------
.
.
error: Server doesn't seem to be starting.
error: Perhaps something else is already running on port 8080 with hostname 127.7.215.1?
.
.
debug: Lowering sails...
DEBUG: Starting child process with 'node app.js'

根据this thread on GitHub提供的一些提示,并检查了示例config/local.js https://gist.github.com/chrisaiv/5938158

在测试任何组合后, Openshift 服务器只是反复重启。我还测试了几个端口,如8080,80,1337 ......我不认为这些都很忙。我尝试运行node app.js和应用程序令人惊讶地在端口8080上运行,但直到我尝试访问views/home/index,可能是因为来自ssh我还没有权利。

以防万一,这里我的config/local.js文件如何:

module.exports = {
        port: process.env.OPENSHIFT_NODEJS_PORT,
        host: process.env.OPENSHIFT_NODEJS_IP
        }

感谢您的任何建议; - )

1 个答案:

答案 0 :(得分:1)

您的应用一直反复重启的原因是因为sails应用程序创建了一个名为.tmp的文件夹并将所有资产放入其中。这意味着您的sails应用程序将编写本地文件。但 Openshift 使用node-supervisor启动节点应用程序,node-supervisor在启动应用程序后监视所有文件更改。如果更改了任何文件,node-supervisor将重新启动服务器。

您可以尝试npm i supervisor -g并通过输入node-supervisor app.js来查看相同的日志来启动您的应用。

我认为解决方案是让SailsJS停止编写本地文件,但我不知道该怎么做。