这是我第一次使用Heroku
,而且我无法在Google中找到任何与此类似错误的人,这意味着我可能正在做一些 方式 错误:
我正在关注基本Heroku setup guide here以将我的NodeJS应用程序部署到网络上。我已部署并尝试使用以下内容检查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
)。
问题为什么会发生这种情况,我该如何解决,我是否应该关心?
答案 0 :(得分:8)
在Heroku上运行的进程在一个名为:Procfile
的简单文本文件中定义配置文件包含一行,用于定义应用程序中每个进程的运行方式。这将是特定于语言的,并且可以在Heroku Devcenter Procfile article
上看到示例请注意,Procfile必须拼写正确,第一个字母大写为其他所有小写字母。 Procfile没有文件扩展名。在执行git push heroku master之前,应将此Procfile放在项目的根目录中并提交到本地git存储库。
如果在将文件名添加到git后错误输入文件名,可以使用命令
使用git重命名git mv ProcFile Procfile
重命名的文件将被暂存,因此您可以使用命令
提交更改的文件git commit -m "corrected name of Procfile"
答案 1 :(得分:2)
我自己找到了解决方案,从这里开始:https://stackoverflow.com/a/7641259/556006
我遇到了同样的问题,我刚才发现了什么问题。我先来 意外地称为文件ProcFile而不是Procfile。只是 重命名该文件没有得到git。我不得不做一个git rm 首先是ProcFile -f然后添加一个新的(正确命名的)Procfile。后 它被git正确推送并被正确拾取 Heroku的。
答案 2 :(得分:2)
我自己就是这个问题,但就我而言,我在web:
和Procfile中的起始命令之间错过了一个空格。
例如,我这样做错了:
web:gunicorn run:app
通过在冒号后添加空格来修复它:
web: gunicorn run:app
答案 3 :(得分:1)
我猜你从未做过git push heroku master
- 也就是说,Heroku从未见过你的代码。