我的问题是如何在 Docker 容器中运行 Google Chrome 进行端到端测试。
我从官方 Jenkins 镜像创建了一个 Dockerfile
,但当尝试运行 Google Chrome 时,它会崩溃并显示错误:
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
Trace/breakpoint trap (core dumped)
Jenkins的Docker镜像使用Debian jessie
。
我可以使用--headless
标志运行Google Chrome,不需要X服务器。
这是我的Docker文件:
Jenkins官方镜像:
有人在Docker中使用GUI运行Google Chrome的存储库:
我的第一个尝试是使用xvbf
,但是当使用--headless
标志时,该过程更简单。
我可以使用相同的安装命令在Ubuntu服务器上运行Chrome,但在Docker中失败。
在尝试其他方法后,我使用了--no-sandbox
标志,但Docker镜像显示以下错误。
[0427/180929.595479:WARNING:audio_manager.cc(295)] Multiple instances of AudioManager detected
[0427/180929.595537:WARNING:audio_manager.cc(254)] Multiple instances of AudioManager detected
libudev: udev_has_devtmpfs: name_to_handle_at on /dev: Operation not permitted
实际上我运行了这个命令:
google-chrome-stable --headless --disable-gpu --no-sandbox http://www.google.com
google-chrome-beta
(版本59)发布了,我非常希望拥有它。我尝试过让它运行起来,但遇到了同样的问题。 - Ghazgkull