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

Posted

技术标签:

【中文标题】尝试部署 Puppeteer 应用程序 Heroku 后错误代码 = H14 desc="No web processes running"【英文标题】:error code=H14 desc="No web processes running" after trying to deploy Puppeteer app Heroku 【发布时间】:2021-04-07 00:33:26 【问题描述】:

我正在尝试将一个简单的应用程序部署到 Heroku,该应用程序使用 Puppeteer 执行 Web Scraping。 由于在 Heroku 中使用 Puppeteer 存在问题,我需要定义一个 buildpack 来支持 Puppeteer,遵循这些文章:

    Puppeteer unable to run on heroku https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-heroku https://github.com/jontewks/puppeteer-heroku-buildpack

按照这些步骤给了我以下错误:

code=H14 desc="No web processes running"

在网上搜索了一下,找到了以下文章:

    H14 error in heroku - "no web processes running"

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

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

我该怎么办?

【问题讨论】:

【参考方案1】:

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

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

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

那是为了确保问题不是纱线。事实并非如此。 接下来,我试图准确了解网络测功机的问题所在,经过大量搜索后,我遇到了这个问题:

https://help.heroku.com/W23OAFGK/why-am-i-seeing-couldn-t-find-that-process-type-when-trying-to-scale-dynos 这篇文章还建议使用 heroku buildpacks:clear 作为之前 *** 问题中的建议,但它还说了一件事,超级重要:

删除现有的 Buildpacks...并再次添加它们以正确的顺序

什么顺序?好吧...显然,当我关注上一个 *** 问题时,我已经删除了 Heroku 设置附带的所有 Buildpacks,包括一个非常重要的 heroku/nodejs build pack。 所以我想我必须将它重新添加到我的 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

现在我知道我有必要的 Buildpacks,按正确的顺序,它可以工作!

【讨论】:

以上是关于尝试部署 Puppeteer 应用程序 Heroku 后错误代码 = H14 desc="No web processes running"的主要内容,如果未能解决你的问题,请参考以下文章

在heroku中部署平均堆栈应用程序时出错

以puppeteer抓取微指数,puppeteer基本示例,即docker部署

在 Heroku 上部署 nextjs 应用程序 - 错误状态 H20

如何解决错误:Puppeteer 中的 net::ERR_CONNECTION

在 Heroku 上部署 ActionCable (Rails 5 beta4)

谷歌应用引擎(路径文件)