在 docker 容器上运行 NOT headless chrome

Bis*_*hok 14 ubuntu node.js docker e2e-testing docker-machine

只有当 chrome 无头时,才能在 docker 机器上运行 chrome。不幸的是,无头 chrome 无法忽略阻止我的测试运行的证书错误。

我正在尝试在 docker 容器上运行一个已经在运行的 NodeJS e2e 测试环境。大多数测试都通过了,但是当一个站点需要证书时,它就无法访问。在无头 chrome 上,我可以简单地忽略认证错误。安装在容器上的基础 docker 镜像是 Node:8

{
 browserName: 'chrome',
 chromeOptions: {
   binary: puppeteer.executablePath(),
   args: [
     '--lang=en-US','--headless','--no-sandbox','--ignore-certificate-errors'
   ]
}
Run Code Online (Sandbox Code Playgroud)

预期的结果是要么在 docker 容器上运行带有 gui 的 chrome,要么以某种方式忽略无头 chrome 中的服务器证书错误。

men*_*urg 9

使用 Xvfb。这将允许您使用带有 GUI 的 Chrome。

想法很简单:您使用虚拟桌面。在独立虚拟机上配置多个桌面/显示器需要付出一些努力。使用 Docker 很简单。

一些例子:

http://www.mattzeunert.com/2018/07/21/running-headful-chrome-on-ubuntu-server.html

https://medium.com/dot-debug/running-chrome-in-a-docker-container-a55e7f4da4a8