Heroku Node应用程序不断崩溃
我在Heroku上托管了一个Express应用程序。本地它运行得很好,但在Heroku上不断崩溃。每次我去它,我都会看到'应用程序错误'页面。Heroku Node应用程序不断崩溃
我仔细检查了所有的环境变量,他们似乎确定。
Heroku的日志不完全提供太大的帮助:
2017-04-16T23:02:49.001768+00:00 heroku[web.1]: State changed from crashed
to starting
2017-04-16T23:02:52.072906+00:00 heroku[web.1]: Starting process with
command `npm run start`
2017-04-16T23:02:56.042611+00:00 app[web.1]:
2017-04-16T23:02:56.042628+00:00 app[web.1]: > [email protected] start /app
2017-04-16T23:02:56.042629+00:00 app[web.1]: > node bin/app
2017-04-16T23:02:56.042630+00:00 app[web.1]:
2017-04-16T23:02:57.200912+00:00 heroku[web.1]: State changed from starting
to crashed
2017-04-16T23:02:57.201454+00:00 heroku[web.1]: State changed from crashed
to starting
2017-04-16T23:02:57.192198+00:00 heroku[web.1]: Process exited with status 0
2017-04-16T23:03:00.981528+00:00 heroku[web.1]: Starting process with
command `npm run start`
2017-04-16T23:03:04.312475+00:00 app[web.1]:
2017-04-16T23:03:04.312489+00:00 app[web.1]: > [email protected] start /app
2017-04-16T23:03:04.312490+00:00 app[web.1]: > node bin/app
2017-04-16T23:03:04.312491+00:00 app[web.1]:
2017-04-16T23:03:06.093211+00:00 heroku[web.1]: Process exited with status 0
2017-04-16T23:03:06.112842+00:00 heroku[web.1]: State changed from starting
to crashed
于是我尝试手动启动该应用程序:
$ heroku run bash
...
$ npm run start
我没有错误。我使用的是PM2进程管理器,所以我检查,看看是否应用程序正在运行,现在看来似乎是:
$ node_modules/.bin/pm2 list
...
但是当我去开我的应用程序,我得到与以前相同的“应用程序错误”页面。
'heroku restart'不起作用。它每次都会再次崩溃。
我的本地环境和Heroku之间的唯一区别(就我所知至少...而言)是在本地我有一个文件,我正在读取一个RSA私钥,而在Heroku上,关键是从环境中读取。
编辑:按照要求,这里是我的Procfile:
web: npm run start
任何想法?
尝试两件事情:通过扩大它
web: node start.js
然后确保你的Web程序运行它: 更改procfile
heroku ps:scale web=1
在您的计算机在终端窗口中运行该命令在您的项目中:
heroku local web
它模拟Heroku如何运行您的应用程序nd应该告诉你正在发生的事情。
尝试过,但没有运气......将Procfile更改为'node bin/app'+缩放应用程序并备份,但仍然崩溃。如果我以某种方式让自己工作,我会在这里发布。 – Yulek
我唯一的建议是使用Heroku在本地启动你的应用程序,看看它说什么(更新的答案) –
RSA私钥有什么作用?你是否按照Heroku的指示部署你的应用程序? https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction –
是的,我遵循指南。我正在尝试构建GitHub集成,所以关键在于GitHub。 – Yulek
你可以添加你的procfile吗? –