我正在尝试使用 XDummy 驱动程序在 docker 容器内运行 X11 服务器。但是,我无法让它工作。预期目的是执行 headless (headless)渲染。我可以使用 Xvfb 让它工作,但我需要 RANDR 支持,最终也需要 GL 支持。
Dockerfile:
FROM node:slim
RUN mkdir nodeapp \
&& apt-get update \
&& apt-get install -y xorg \
&& apt-get install -y xserver-xorg-video-dummy x11-apps
COPY App /nodeapp/
ENV DISPLAY :1
RUN cd nodeapp/ \
&& npm install \
&& Xorg -noreset +extension GLX +extension RANDR +extension RENDER -logfile /nodeapp/xdummy.log -config /nodeapp/xorg.conf start :1 &
ENTRYPOINT [ "node", "/nodeapp/index.js" ]
xorg.conf 文件是基本的 Xdummy xorg.conf
但是,xserver 无法启动,日志文件也没有提供任何有用的信息,但我确信在 Dockerfile 中设置 Xorg 时我做错了,但我找不到任何类似的示例。
完成这项工作的推荐程序是什么?
最佳答案
我赞同“每个容器一件事”的 Docker 理念,所以我修改了您的解决方案,只做 XDummy。它可以很容易地链接到另一个容器。
FROM debian:jessie ENV DEBIAN_FRONTEND noninteractive ENV DISPLAY :1 RUN apt-get update \ && apt-get -y install xserver-xorg-video-dummy x11-apps VOLUME /tmp/.X11-unix COPY xorg.conf /etc/X11/xorg.conf CMD ["/usr/bin/Xorg", "-noreset", "+extension", "GLX", "+extension", "RANDR", "+extension", "RENDER", "-logfile", "./xdummy.log", "-config", "/etc/X11/xorg.conf", ":1"]
然后要访问,链接 /tmp/.X11-unix
卷并在您的环境中设置 DISPLAY=:1
。
关于docker - Docker 容器中的 XDummy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39085462/