Nodejs 应用程序不使用 Procfile,而是使用 npm start 代替



我在Heroku上运行一个nodejs express服务器。我在应用程序根目录中定义了一个 Procfile,其中包含:

web:node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js

但是,当我使用heroku logs -a my-app --tail时,我注意到我的应用程序开始使用npm start它只是node server.js而不是我放入Procfile的内容。这是日志:

2020-05-20T16:28:35.000000+00:00 app[api]: Build succeeded
2020-05-20T16:28:36.489864+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-05-20T16:28:36.575077+00:00 heroku[web.1]: Process exited with status 143
2020-05-20T16:28:37.695081+00:00 heroku[web.1]: Starting process with command `npm start`
2020-05-20T16:28:40.709631+00:00 app[web.1]: 
2020-05-20T16:28:40.709647+00:00 app[web.1]: > my-app@0.0.1 start /app
2020-05-20T16:28:40.709648+00:00 app[web.1]: > node server.js
2020-05-20T16:28:40.709648+00:00 app[web.1]: 

正如我从 Heroku 的文档中了解到的那样,只有在没有检测到Procfile时才应使用npm start。我在这里错过了什么?

问题是我的进程名称和Procfile内的命令之间没有空格。这现在对我有用:

web: node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js

以下是heroku logs的日志输出:

2020-05-20T16:58:44.000000+00:00 app[api]: Build succeeded
2020-05-20T16:58:46.235387+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-05-20T16:58:46.360055+00:00 heroku[web.1]: Process exited with status 143
2020-05-20T16:58:47.111612+00:00 heroku[web.1]: Starting process with command `node --optimize_for_size --max_old_space_size=460 --gc_interval=100 server.js`

相关内容

  • 没有找到相关文章

最新更新