在Docker中打开Karma服务器URL后,Firefox挂起

上下文我一直在PhantomJS,Google Chrome和Firefox本地运行我的Karmatesting,没有任何问题。 目前,我正在运行Docker中的Karmatesting,并且在Docker容器中的Firefox中运行Karmatesting时遇到了问题,尽pipeDocker容器可以在Google Chrome中运行Karmatesting而没有任何问题。

问题当我创build了包含Google Chrome,Firefox,JS库(node,npm,grunt等)和VNC实用程序(Xvfb,x11vnc)的Docker容器时。 我启动了VNC服务器并运行testing。 Firefox已经启动,套接字是用一个唯一的ID创build的。 当我进入一个VNC会话时,我可以看到firefox已经启动,URL被加载到URL栏,Karma页面被加载。 但是,大约2秒后,网页将会冻结,并且Firefox被挂起。 所以我看不到LOG: 'INFO[2015-10-16 20:19:15]: Router Started'消息。

有趣的发现,手动重现这个我已经厌倦了评论启动Firefox的行 ,所以只有在运行Karmatesting时才启动karma服务器。 然后我尝试用以下两种方法运行testing –

  1. 通过docker exec -it <container_tag>启动Bash会话,执行firefox ,并input带有相应的testing运行ID的服务器url。 在这种情况下,Firefox没有挂起,然后开始testing运行。
  2. 通过docker exec -it <container_tag>启动Bash会话,执行firefox <server_url_with_coresponding_id> 。 在这种情况下,Firefox没有挂起,然后开始testing运行。

我的DockerFile FROM ubuntu:14.04

 #======================== # Environment Variables for Configuration #======================== ENV GEOMETRY 1920x1080x24 ENV DISPLAY :0 #======================== # Install Required Packages #======================== RUN apt-get update -qq && apt-get install -qqy wget \ wget \ firefox \ xvfb \ x11vnc \ nodejs \ npm #======================== # Install Google Chrome (Latest Stable Version) #======================== RUN \ wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \ echo "deb http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list && \ apt-get update -qq && \ apt-get install -qqy google-chrome-stable #======================== # Clean up Apt #======================== RUN \ apt-get clean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* #======================== # Setup VNC Server #======================== RUN \ mkdir -p ~/.vnc && \ x11vnc -storepasswd 1234 ~/.vnc/passwd #======================== # Symlink NodeJS #======================== RUN ln -s /usr/bin/nodejs /usr/bin/node #======================== # Install Grunt and Grunt-CLI #======================== RUN \ npm install -g grunt && \ npm install -g grunt-cli #======================== # Setup Entry Point #======================== COPY entry_point.sh /opt/bin/entry_point.sh RUN chmod +x /opt/bin/entry_point.sh ENTRYPOINT ["/opt/bin/entry_point.sh"] 

我相信这是一个关于karma-firefox-launcher或者karma主库的问题。 如果任何人都可以给我一些指点和想法,这将是伟大的!

我已经提交PR到karma-firefox-launcher https://github.com/karma-runner/karma-firefox-launcher/pull/45

这只是其他人可能会陷入这个。

Firefox有VirtualBox共享文件夹上的个人资料文件夹的问题请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=801274这是用于Docker安装&#x3002; 诀窍是指定共享文件夹之外的configuration文件文件夹,如下所示:

在karma.conf.js中:

 browsers: [ 'FirefoxDocker' ], browserNoActivityTimeout: 30000, // < might be necessary for slow machines customLaunchers: { FirefoxDocker: { base: 'Firefox', profile: '/tmp/firefox' // < location is up to you but make sure folder exists } }, 

请记住要更新到版本v0.1.7来完成这项工作。