在Docker中如何运行Google Chrome无头? [英] How to run google chrome headless in docker?
问题描述
无法移动到新的命名空间:支持的PID名称空间,支持网络命名空间,但失败:errno =不允许操作
跟踪/断点陷阱(核心转储)
jenkins码头图像使用debian jessie。
我可以使用--headless标志运行Google Chrome,而不需要x服务器
这是我的docker文件
https://github.com/ripper2hl/jenkinswithchrome
jenkins官方图片
https: //github.com/jenkinsci/docker
一个人运行谷歌chrome与GUI从d ocker
https://github.com/jessfraz/dockerfiles/blob/master/chrome/stable/Dockerfile
我的第一个aproach用于xvbf,但进程是使用更简单 - 无标志
https ://gist.github.com/addyosmani/5336747
我可以在ubuntu服务器上运行相同的命令来安装Chrome,但是docker失败。 p>
在其他意图之后,我使用 - no-sandbox
标志,但是docker图像显示下一个错误。
[0427 / 180929.595479:警告:audio_manager.cc(295)]检测到AudioManager的多个实例
[0427 / 180929.595537:警告:audio_manager .cc(254)]检测到AudioManager的多个实例
libudev:udev_has_devtmpfs:/ dev上的name_to_handle_at:不允许操作
其实我运行这个命令:
google-chrome-stable --headless --disable-gpu --no-sandbox http://www.google.com
我扩展了默认的Dockerfile 硒铬节点按照
FROM selenium / standalone-chrome-debug:最新
维护者Serge Arbuzov < Serge.Arbuzov@advantechwireless.com>
USER root
### jenkins设置###
RUN apt-get update&& apt-get install -y openssh-server sudo
运行mkdir / var / run / sshd
运行adduser jenkins
运行echo jenkins:jenkins | chpasswd
RUN echojenkins ALL =(ALL)NOPASSWD:ALL> / etc / sudoers
USER root
RUN echo export DISPLAY =:1.5> ;> / etc / environment
ADD run.sh /run.sh
RUN chmod + x /run.sh
EXPOSE 22
CMD [/ run.sh]
而我的run.sh是
#!/ bin / bash
Xvfb:1-screen 5 1024x768x8&
/ usr / sbin / sshd -D
所以我可以使用默认图像作为Jenkins节点
My problem is how run google chrome in docker container for e2e testing , i make an Dockerfile from official jenkins image, but when try run google chrome this crash and show the next error
Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
Trace/breakpoint trap (core dumped)
The jenkins docker image use debian jessie.
I can run google chrome with --headless flag and the x server is not needed
This is my docker file
https://github.com/ripper2hl/jenkinswithchrome
jenkins official image
https://github.com/jenkinsci/docker
The repo an person run google chrome with GUI from docker
https://github.com/jessfraz/dockerfiles/blob/master/chrome/stable/Dockerfile
My first aproach is used xvbf but the process is more simple when use --headless flag
https://gist.github.com/addyosmani/5336747
I can run chrome in ubuntu server with same commands for installation but in docker fails.
After other intents i use --no-sandbox
flag but docker images shows the next error.
[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
Actually i run this command:
google-chrome-stable --headless --disable-gpu --no-sandbox http://www.google.com
I extend default Dockerfile Selenium Chrome Node by following
FROM selenium/standalone-chrome-debug:latest
MAINTAINER Serge Arbuzov <Serge.Arbuzov@advantechwireless.com>
USER root
### jenkins set up ###
RUN apt-get update && apt-get install -y openssh-server sudo
RUN mkdir /var/run/sshd
RUN adduser jenkins
RUN echo jenkins:jenkins | chpasswd
RUN echo "jenkins ALL=(ALL) NOPASSWD:ALL">>/etc/sudoers
USER root
RUN echo export DISPLAY=":1.5" >> /etc/environment
ADD run.sh /run.sh
RUN chmod +x /run.sh
EXPOSE 22
CMD ["/run.sh"]
And my run.sh is
#!/bin/bash
Xvfb :1 -screen 5 1024x768x8 &
/usr/sbin/sshd -D
So i can use default image as Jenkins node
这篇关于在Docker中如何运行Google Chrome无头?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!