我正在努力从Docker镜像中运行我的黄瓜测试。
这是我的设置:
到目前为止,我设法使用以下设置启动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
我可以从我的Vagrant机器启动带有--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
但这并不理想,因为我无法在docker-compose.yml文件中将其他容器链接到我的机器。理想情况下,我想在没有--net=host
的情况下运行我的docker机器:
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
请帮助:)
答案 0 :(得分:1)
您可以简单地使用elgalu/docker-selenium来避免处理已经为您解决的问题,并维护:
docker run --rm -ti --net=host --pid=host --name=grid \
-e SELENIUM_HUB_PORT=4444 -e TZ="US/Pacific" \
-v /dev/shm:/dev/shm --privileged elgalu/selenium
如果您需要高级功能,例如带有视频录制功能的信息中心或实时预览,您可以使用Zalenium并启动它:
curl -sSL https://raw.githubusercontent.com/dosel/t/i/p | bash -s start -i