【发布时间】:2017-09-25 16:35:15
【问题描述】:
我的问题是如何在 docker 容器中运行 google chrome 进行 e2e 测试。
我从官方 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 的 repo:
我的第一种方法是使用xvbf,但使用--headless标志时过程更简单。
我可以在 Ubuntu 服务器中使用相同的安装命令运行 chrome,但在 docker 中它会失败。
在其他意图之后,我使用了--no-sandbox 标志,但 docker images 显示下一个错误。
[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)已经发布。我已经尝试启动并运行它并遇到相同的问题。 -
您是否尝试使用所有这些标志运行它? google-chrome-unstable --disable-gpu --headless --user-data-dir=/var/jenkins_home/chrome-data
-
这就是我在 Docker 中运行 C# 应用程序 + Selenium 的方式:Other question, same answer
标签: google-chrome docker jenkins e2e-testing