我正在尝试在 Docker 容器上打开 Firefox GUI。我避免使用似乎/tmp/.X11-unix
在主机上使用过的最常见解决方案,因为我希望容器可以在任何主机上运行,包括没有 X11 的无头主机。
目标只是使用 selenium 打开 Firefox GUI 并截取屏幕截图。我不太确定这是否可行,但我猜是可以的。
FROM ubuntu:latest
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y update
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install python3 python3-pip firefox-geckodriver x11vnc xvfb
RUN DEBIAN_FRONTEND="noninteractive" apt-get -y install x11-xserver-utils
RUN DEBIAN_FRONTEND="noninteractive" pip install --upgrade --no-cache-dir pip-with-requires-python && \
pip install --upgrade --no-cache-dir --prefer-binary selenium
WORKDIR /app
COPY entrypoint.sh .
COPY script.py .
RUN chmod +x entrypoint.sh
CMD ["x11vnc", "-create", "-forever"]
ENV DISPLAY :0
CMD ["xhost", "+"]
ENTRYPOINT ["/app/entrypoint.sh"]
目前 xhost 输出xhost: unable to open display :0
。我不确定,:0
但我尝试了几个值。
当然,Selenium 也会失败:
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
我没有什么主意了,所以任何想法都会受到赞赏:) 我可能遗漏了重要部分。