XDummy在Docker容器中

我正在尝试通过使用XDummy驱动程序在Docker容器中运行X11服务器。 但是,我有问题得到它的工作。 预期的目的是执行无头渲染。 我可以使用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时出错了,但是我找不到任何类似的例子。

推荐的程序是什么?

pipe理解决这个,如果其他人正在寻找一个解决scheme。

 FROM node:slim ENV DEBIAN_FRONTEND noninteractive ENV DISPLAY :1 RUN mkdir nodeapp \ && apt-get update \ && apt-get -y install xserver-xorg-video-dummy x11-apps COPY App /nodeapp/ RUN cd nodeapp/ \ && npm install ENTRYPOINT [ "node", "/nodeapp/index.js" ] 

问题是,apt-get在安装时需要docker容器中的键盘configuration,虚拟软件包提供了所有的依赖关系,所以不需要常规的xorg安装。

最后一个问题是我无法同时启动Xorg和nodeapp,但这是一个简单的解决方法。 我已经使用节点来pipe理服务,所以我把开始Xorg的部分移到了那里。

 var args = ["-noreset", "+extension", "GLX", "+extension", "RANDR", "+extension", "RENDER", "-logfile", "./xdummy.log", "-config", "/mplex-core/xorg.conf", ":1"]; this.proc = child_process.spawn("Xorg", args); 

我订阅“每个容器的一件事”Docker哲学,所以我修改了你的解决scheme,只做XDummy。 它可以很容易地链接到另一个容器。

从debian:jessie

 ENV DEBIAN_FRONTEND非交互式
 ENV DISPLAY:1

运行apt-get更新\
     && apt-get -y install xserver-xorg-video-dummy x11-apps

 VOLUME /tmp/.X11-unix

复制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