在无头机上运行的 Docker 容器中打开 GUI

在无头机上运行的 Docker 容器中打开 GUI

我正在尝试在 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

我没有什么主意了,所以任何想法都会受到赞赏:) 我可能遗漏了重要部分。

相关内容