首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Google Chrome Puppeteer应用推送到Predix时出错

将Google Chrome Puppeteer应用推送到Predix时出错
EN

Stack Overflow用户
提问于 2017-11-10 17:51:23
回答 3查看 1.1K关注 0票数 4

我正尝试在predix web-starter应用程序中使用Google Chrome Puppeteer。当我在Windows上本地运行代码时,它可以完美地运行。在我把它推到Predix之后,当我运行包含Puppeteer代码的部分时,它会导致一个错误。似乎有一些缺少的库问题(不确定是什么)。简而言之,我怎样才能让Puppeteer在Predix上运行?

https://www.npmjs.com/package/puppeteer -web-starter:https://github.com/PredixDev/predix-webapp-starter傀儡

木偶表演者代码:

代码语言:javascript
复制
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://news.ycombinator.com', {waitUntil: 'networkidle'});
await page.pdf({path: 'hn.pdf', format: 'A4'});
await browser.close();
})();

日志:

代码语言:javascript
复制
2017-11-07T12:40:16.19+0530 [App/0] ERR /home/vcap/app/node_modules/puppeteer/.local-chromium/linux-508693/chrome-linux/chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory
2017-11-07T12:40:16.19+0530 [App/0] ERR TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
2017-11-07T12:40:16.19+0530 [App/0] ERR     at Interface.close (readline.js:319:8)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at endReadableNT (_stream_readable.js:974:12)
2017-11-07T12:40:16.19+0530 [App/0] ERR Potentially unhandled rejection [3] Error: Failed to launch chrome!
2017-11-07T12:40:16.19+0530 [App/0] ERR     at onClose (/home/vcap/app/node_modules/puppeteer/node6/Launcher.js:262:14)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at emitNone (events.js:91:20)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at Interface.emit (events.js:186:7)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at _combinedTickCallback (internal/process/next_tick.js:74:11)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at Interface.helper.addEventListener (/home/vcap/app/node_modules/puppeteer/node6/Launcher.js:251:50)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at Socket.onend (readline.js:106:10)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at emitNone (events.js:91:20)
2017-11-07T12:40:16.19+0530 [App/0] ERR     at Socket.emit (events.js:186:7)
2017-11-07T12:41:15.21+0530 [RTR/2] OUT puppeter-arjun-app.run.aws-usw02-pr.ice.predix.io - [2017-11-07T07:10:16.196+0000] "GET /puppeteer HTTP/1.1" 502 0 67 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36" "10.72.11.93:2263" "10.72.2.213:61322" x_forwarded_for:"-" x_forwarded_proto:"http" vcap_request_id:"7d0f3007-914a-42d4-536d-b94eb8d2fb6c" response_time:59.022647288 app_id:"02063159-96d9-43c5-a3e9-77f4e72339f4" app_index:"-" x_b3_traceid:"4f11f468be4b6817" x_b3_spanid:"4f11f468be4b6817" x_b3_parentspanid:"-"
2017-11-07T12:41:15.21+0530 [RTR/2] OUT
EN

回答 3

Stack Overflow用户

发布于 2018-08-03 05:58:48

最近发现,使用cloudfoundry/apt-buildpackcloudfoundry/nodejs-buildpack,可以通过将共享库包含在apt.yml中来安装它们。然而,predix不允许多构建包推送,所以我尝试使用cloudfoundry/multi-buildpack,但没有成功,原因不明。我解决这个问题的方法是创建一个定制的构建包,从apt获取代码,将其放到nodejs buildpack上,然后在manifest.yml上包含git仓库url。这是我的custom buildpack

票数 1
EN

Stack Overflow用户

发布于 2017-11-12 08:02:42

这是因为Chrome可能需要安装更多的软件包才能在该主机上正常工作。有一个很好的故障排除文档here,假设您对环境的配置有一些控制。

其他选择是使用另一个为你运行Chrome的服务(你可以在AWS或Google Cloud上使用)。这是一个相当复杂的过程,这就是为什么我写了https://browserless.io,它是交钥匙的,支持木偶师0.11.0和0.12.0。

希望这能让你走上正确的道路,祝你好运!

票数 0
EN

Stack Overflow用户

发布于 2017-11-14 01:40:40

看起来puppeteer正在尝试使用一个“共享库”,而这个库是缺失的,或者是您无权访问的。在Predix Foundry环境中,您对服务器操作系统的访问非常有限。您只允许使用容器内部的资源,这使得伸缩很容易发生。

你的目标是什么?正在尝试运行浏览器测试?你可以试试selenium with Sauce Labs,或者Travis。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47219934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档