错误代码=H14 desc=尝试部署傀儡师应用程序Heroku后"No web processes running"



我正在尝试将一个简单的应用程序部署到Heroku,该应用程序使用Puppeter执行Web Scraping。由于在Heroku中使用Puppeter存在问题,我需要定义一个构建包来支持Puppeter,如下所述:

  1. 木偶无法在heroku上运行
  2. https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-heroku上的木偶师
  3. https://github.com/jontewks/puppeteer-heroku-buildpack

以下步骤给了我以下错误:

code=H14 desc="No web processes running"

在网上搜索了一下之后,我发现了以下文章:

heroku中的
  1. H14错误-";没有web进程运行">

说我没有运行网络dynos,我尝试使用建议的命令设置一些:heroku ps:scale web=1但这只是给了我一个错误:Scaling dynos... ! ▸ Couldn't find that process type (web).

我正在运行一个Node.js应用程序,使用Yarn作为包管理器。

我该怎么办?

我将描述我为解决这个问题所经历的过程,这需要大量的时间。

首先,根据Heroku文档,我确保问题不是由使用Yarn而不是npm引起的,如果你的应用程序的根文件夹包含Yarn.lock文件,那么它应该自动使用Yarn来构建应用程序。但他们也说你需要在你的package.json文件中添加一个你使用的Yarn版本的描述,所以我做了:

"engines": {
"yarn": "1.x"
},

这是为了确保问题不是纱线。事实并非如此。接下来,我试图确切地了解网络dynos的问题是什么,经过大量搜索,我发现了这个:

  • https://help.heroku.com/W23OAFGK/why-am-i-seeing-couldn-t-find-that-process-type-when-trying-to-scale-dynos本文还建议使用heroku buildpacks:clear作为StackOverflow问题中的前一个建议,但它还说了一件非常重要的事情:

删除现有的Buildpacks。。。并按正确顺序再次添加

什么订单?好显然,当我关注上一个StackOverflow问题时,我已经删除了Heroku设置附带的所有构建包,包括一个非常重要的构建包heroku/nodejs。所以我想我必须把它重新添加到我的Buildpack列表中。我还认为,如果这是默认的Buildpack,那么它应该是列表中的第一个,然后应该是用于puppeteer的Buildpack(可以通过使用--index标志来完成(。

最后,我通过运行以下命令解决了问题:

$ heroku buildpacks:clear
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add --index=2 jontewks/puppeteer
$ git commit --allow-empty -m "Adjust buildpacks on Heroku"
$ git push heroku master

运行$ heroku buildpacks进行确认,返回以下内容:

=== workday-jobs Buildpack URLs
1. heroku/nodejs
2. jontewks/puppeteer

现在我知道我有了必要的BuildPack,按照正确的顺序,它很有效!