Heroku procfile "No such process type web defined in Procfile" error



这是我第一次使用Heroku,事实上我在谷歌中找不到任何有类似错误的人,这意味着我可能做错了的事情:

我在这里遵循基本的Heroku设置指南来将我的NodeJS应用程序部署到web上。我已部署并尝试使用检查我的dynos

heroku ps:scale web=1

然而,当我这样做时,我会得到错误:

Scaling web dynos... failed
 !    No such process type web defined in Procfile.

当我运行heroku ps时,我没有得到任何回报。

在我的应用程序根目录中,我有一个名为Procfile(没有扩展名)的文件,其中包含:

web: node app.js

该应用程序在本地运行,没有任何问题(使用foreman start)。

问题是为什么会发生这种情况,我该如何补救,我应该关心吗?

在Heroku上运行的进程定义在一个名为Procfile 的简单文本文件中

概要文件包含一行,用于定义应用程序中每个进程的运行方式。这将是特定于语言的,示例可以在Heroku Devcenter Procfile文章上看到

请注意,Procfile的拼写必须准确,第一个字母大写,其他字母小写。Procfile没有文件扩展名。这个Procfile应该放在项目的根目录中,并在执行git-push-heroku master之前提交到本地git存储库。

如果在将文件名添加到git后键入错误,可以使用命令使用git重命名文件名

git mv ProcFile Procfile

重命名后的文件将被暂存,因此您可以使用命令提交更改后的文件

git commit -m "corrected name of Procfile"

我自己找到了解决方案,从这里开始:https://stackoverflow.com/a/7641259/556006

我也遇到了同样的问题,我刚刚发现了问题所在。我先意外地调用了文件ProcFile而不是ProcFile。仅仅git没有处理重命名该文件的问题。我不得不做一个git-rmProcFile-f,然后添加一个新的(正确命名的)ProcFile。之后它被git正确地推动,并被Heroku。

我自己也遇到过这个问题,但在我的情况下,我在web:和Procfile中的启动命令之间缺少了一个空格。

例如,我错了:

web:gunicorn run:app

通过在冒号后添加空格修复了此问题:

web: gunicorn run:app

我猜您从未做过git push heroku master——也就是说,Heroku从未见过您的代码。

相关内容

最新更新