在 Heroku 上托管时,Puppeteer discord bot 不断崩溃
Posted
技术标签:
【中文标题】在 Heroku 上托管时,Puppeteer discord bot 不断崩溃【英文标题】:Puppeteer discord bot keeps crashing when hosted on Heroku 【发布时间】:2020-09-01 08:05:40 【问题描述】:Bot 在本地运行良好,甚至在模拟的 Heroku 本地 heroku local web
中也能正常工作,但在其在线服务器上托管时会在一两分钟后崩溃。
我已尝试手动将我的工作人员缩放设置为 1 heroku ps:scale web=1
这是我的 puppeteer 浏览器启动参数:args: ["--no-sandbox", "--disable-setuid-sandbox"],
我的依赖列表如下:
discord.js dotenv 节点获取 傀儡师 fs日志没用:
2020-05-15T11:40:56.804117+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-15T11:41:22.345051+00:00 app[web.1]:
2020-05-15T11:41:22.345073+00:00 app[web.1]: > discordbot@1.0.0 start /app
2020-05-15T11:41:22.345073+00:00 app[web.1]: > node bot.js
2020-05-15T11:41:22.345074+00:00 app[web.1]:
2020-05-15T11:42:20.278141+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-15T11:53:02.553013+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-15T11:53:25.758932+00:00 app[web.1]:
2020-05-15T11:53:25.758955+00:00 app[web.1]: > discordbot@1.0.0 start /app
2020-05-15T11:53:25.758956+00:00 app[web.1]: > node bot.js
2020-05-15T11:53:25.758956+00:00 app[web.1]:
2020-05-15T11:54:18.310840+00:00 heroku[web.1]: State changed from starting to crashed
【问题讨论】:
—disable-dev-shm-usage 发现于github.com/heroku/heroku-buildpack-google-chrome/issues/… 没有解决我的问题 从 heroku 仪表板打印日志 我做到了,它与您在我的帖子中看到的日志相同。除了将状态从开始更改为崩溃之外,没有关于实际崩溃的详细信息 【参考方案1】:我遇到了类似的问题并应用了这个: (复制自 Puppeteer Troubleshooting 网站。它成功了!)
在 Heroku 上运行 Puppeteer
在 Heroku 上运行 Puppeteer 需要一些额外的依赖项,这些依赖项不包含在 Heroku 为您构建的 Linux 机器上。要添加部署依赖项,请将 Puppeteer Heroku buildpack 添加到 Settings > Buildpacks 下的应用程序的 buildpacks 列表中。
buildpack 的 url 是 https://github.com/jontewks/puppeteer-heroku-buildpack
确保在启动 Puppeteer 时使用“--no-sandbox”模式。这可以通过将其作为参数传递给您的 .launch() 调用来完成:puppeteer.launch( args: ['--no-sandbox'] );。
当您单击添加 buildpack 时,只需将该 URL 粘贴到输入中,然后单击保存。在下一次部署时,您的应用还将安装 Puppeteer 需要运行的依赖项。
如果您需要渲染中文、日文或韩文字符,您可能需要使用带有其他字体文件的 buildpack,例如 https://github.com/CoffeeAndCode/puppeteer-heroku-buildpack
还有来自@timleland 的另一个简单指南,其中包括一个示例项目:https://timleland.com/headless-chrome-on-heroku/。
【讨论】:
以上是关于在 Heroku 上托管时,Puppeteer discord bot 不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 discord.py 机器人在 Heroku 上托管时没有声音?
在 Heroku 上托管时,Selenium 应用程序重定向到 Cloudflare 页面
Discord.js 我的机器人在 Heroku 上托管时找不到任何父或子频道