8

我想将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'

遵循GitHub 上此线程的一些提示,并检查了示例config/local.js https://gist.github.com/chrisaiv/5938158

在测试任何组合之后,Openshift服务器只是一遍又一遍地重新启动。我还测试了几个端口,例如 8080、80、1337 ……我不认为他们都很忙。我尝试运行nodeapp.js 并且应用程序出人意料地在端口 8080 上运行,但直到我尝试访问views/home/index,可能是因为ssh我没有足够的权限。

以防万一,我的config/local.js文件如下所示:

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

谢谢你的任何建议;-)

4

1 回答 1

1

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

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

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

于 2013-11-02T15:21:50.940 回答