使用puppeteer从Docker容器访问无头Chrome实例时,本地主机连接被拒绝(在本地运行)

时间:2018-06-25 04:53:31

标签: docker puppeteer google-chrome-headless

我正在docker容器中运行无头chrome,并通过使用browerWSEndpoint在本地运行它来通过puppeteer对其进行访问。这部分工作正常。建立连接后,我尝试使用实例进入失败的localhost:port,并且出现以下错误:

Error: net::ERR_CONNECTION_REFUSED at http://localhost:port/
at navigate (path_to/node_app/puppet/node_modules/puppeteer/lib/Page.js:521:37)
at anonymous
at process._tickCallback (internal/process/next_tick.js:188:7)
  

木偶版本:^ 1.2

平台/操作系统版本:我的操纵p正在本地计算机上运行,​​该本地计算机为MacOS 10.13.4,而Docker容器为linux。

  

Node.js版本:v8.11.2

我使用https://github.com/skalfyfan/dockerized-puppeteer在容器中设置了无头铬。 (注意:未使用应用程序文件夹,仅使用Chrome) 已使用puppeteer连接到此chrome实例。 尝试使用以下方法打开本地主机: await page.goto(“ http://localhost:port”,{waitUntil:'networkidle0'});

预期: 建立连接并停止Docker容器。

实际:

Error: net::ERR_CONNECTION_REFUSED at http://localhost:port/
at navigate (/node_app/puppet/node_modules/puppeteer/lib/Page.js:521:37)
at 
at process._tickCallback (internal/process/next_tick.js:188:7)

谢谢。

1 个答案:

答案 0 :(得分:3)

解决了。我在终端上使用hostname -f来查找主机名,并使用它代替了localhost。我认为从docker启动chrome实例时没有本地主机映射。