如何解决尝试部署 Puppeteer 应用 Heroku 后,错误代码=H14 desc="No web processes running"
我正在尝试将一个简单的应用程序部署到 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"
在网上搜索了一下,我找到了以下文章:
说我没有运行 web dynos,我尝试使用建议的命令设置一些:
heroku ps:scale web=1
但这只是给了我这个错误:
Scaling dynos... ! ▸ Couldn't find that process type (web).
我正在运行一个 Node.js 应用程序,使用 Yarn 作为包管理器。
我该怎么办?
解决方法
我将描述我解决这个问题所经历的过程,这需要大量时间。
首先,我确定问题不是由使用 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
作为之前 StackOverflow 问题中的建议,但它又说了一件非常重要的事情:
删除现有的 Buildpacks...并重新添加它们以正确的顺序
什么顺序?好吧...显然,当我关注上一个 StackOverflow 问题时,我已经删除了 Heroku 设置附带的所有 Buildpack,包括一个非常重要的 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
现在我知道我有必要的 Buildpacks,而且顺序正确,而且效果很好!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。