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

use*_*212 8 docker google-chrome-headless puppeteer

我在 docker 容器中运行无头 chrome 并通过 puppeteer 访问它,方法是使用 browerWSEndpoint 在本地运行它。这部分工作正常。建立连接后,我尝试使用该实例转到失败的 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)
Run Code Online (Sandbox Code Playgroud)

木偶版:^1.2

平台/操作系统版本:我的 puppeteer 在我的本地机器上运行,它是 MacOS 10.13.4,docker 容器是 linux。

Node.js 版本:v8.11.2

我使用https://github.com/skalfyfan/dockerized-puppeteer在我的容器中设置无头 chrome。(注意:没有使用 app 文件夹,只使用了 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)
Run Code Online (Sandbox Code Playgroud)

谢谢你。

use*_*212 8

修复。我hostname -f在终端上使用它来查找主机名并使用它而不是本地主机。我认为从 docker 启动 chrome 实例时没有本地主机映射。