尝试部署 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"的主要内容,如果未能解决你的问题,请参考以下文章
以puppeteer抓取微指数,puppeteer基本示例,即docker部署
在 Heroku 上部署 nextjs 应用程序 - 错误状态 H20
如何解决错误:Puppeteer 中的 net::ERR_CONNECTION