Dokku 与木偶师铬无头:"Failed to launch chrome"



Dokku

Heroku我尝试使用Puppeteer Chrome无头与此代码:

const browser = await puppeteer.launch({
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox'
]
});
const page = await browser.newPage();

Dokku构建并启动应用程序时,我会收到以下错误:

错误:无法启动chrome!/app/nod_module/putpeer/.local chromix/linux-641577/chrome-linux/chrome:加载共享库时出错:libX11-xcb.so.1:无法打开共享对象文件:没有这样的文件或目录故障排除:https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md

故障排除页面显示要安装软件包。但是Dokku没有访问这个已安装的包,因为他使用Docker。

此外,我安装了带有以下命令的buildpack:

dokku buildpacks:add <app_name> jontewks/puppeteer

或者这个git存储库

dokku buildpacks:add <app_name> https://github.com/jontewks/puppeteer-heroku-buildpack.git

我再次执行deploy命令dokku deploy <app_name>,日志中总是出现错误。

如果有人遇到同样的问题(就像我一样(,我会回答这个问题。mskog在github项目中提出了一个解决方案。

puppeteer无法启动的根本原因是容器中缺少一些库。因此,您需要在创建它时安装它们。为此,mskog建议使用dokku-apt,这是Dokku的一个插件,它将在容器启动时为您安装库。

安装dokku-apt后,在项目的根目录下创建一个名为apt-packages的文件,并在其中添加所需库的列表。

由于版本3.0,puppeteer需要一个未在github项目中指定的新库libgbm-dev,请使用以下列表

gconf-service
libasound2
libatk1.0-0
libc6
libcairo2
libcups2
libdbus-1-3
libexpat1
libfontconfig1
libgcc1
libgconf-2-4
libgdk-pixbuf2.0-0
libglib2.0-0
libgtk-3-0
libnspr4
libpango-1.0-0
libpangocairo-1.0-0
libstdc++6
libx11-6
libx11-xcb1
libxcb1
libxcomposite1
libxcursor1
libxdamage1
libxext6
libxfixes3
libxi6
libxrandr2
libxrender1
libxss1
libxtst6
ca-certificates
fonts-liberation
libappindicator1
libnss3
lsb-release
libgbm-dev
xdg-utils
wget

最新更新