我正在努力从Docker镜像运行我的黄瓜测试。如何在Docker中运行cucumber/selenium测试?
这里是我的设置:
- 我使用OSX与XQuartz运行的X11会议
- 我用发展的Ubuntu的14放浪形象在我转发我的X11会议
- 我想运行与Firefox码头工人形象,将用我XQuartz会话显示
到目前为止,我设法用下面的设置启动Firefox:
# Dockerfile
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y firefox
# Replace 1000 with something appropriate ;)
RUN export uid=1000 gid=1000 && \
mkdir -p /home/developer && \
echo "developer:x:${uid}:${gid}:Developer,,,:/home/dev:/bin/bash" >> /etc/passwd && \
echo "developer:x:${uid}:" >> /etc/group && \
echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
chmod 0440 /etc/sudoers.d/developer && \
chown ${uid}:${gid} -R /home/developer
USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox
我可以--net=host
从我的流浪机启动Firefox:
docker build -t firefox .
docker run --net=host -ti --rm -e DISPLAY=$DISPLAY -v $HOME/.Xauthority:/home/developer/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix:rw firefox:latest
但因为我不能在泊坞窗,compose.yml文件等容器链接到我的机器,这是不理想的。理想情况下,我想没有--net=host
运行我的泊坞窗机是这样的:
docker build -t firefox .
docker run -ti --rm -e DISPLAY=$DISPLAY -v $HOME/.Xauthority:/home/developer/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix:rw firefox:latest
,但我得到了以下错误:
error: XDG_RUNTIME_DIR not set in the environment.
Error: cannot open display: localhost:10.0
请帮助:)
你特别努力,因为你想看到的测试或者使用X11你打开一些像Xvfb这样的容器,你不需要X11服务器就可以运行虚拟帧缓冲区?我问,因为我使用官方Selenium镜像https://hub.docker.com/r/selenium/在Selenium Hub上使用Selenium Hub在Firefox和Chrome中运行Selenium测试,它运行良好。 –
是的,我不使用xvfb的主要原因是因为我想查看和调试我的测试。 Xvfb非常适合CI。 –