use*_*305 12 headless xserver xorg 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" ]
Run Code Online (Sandbox Code Playgroud)
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在您的环境中设置.
管理解决这个问题,如果其他人正在寻找解决方案.
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" ]
Run Code Online (Sandbox Code Playgroud)
问题是apt-get在安装时要求docker容器内的键盘配置,并且虚拟包提供了所有依赖项,因此不需要常规的xorg安装.
最后一个问题是我无法同时启动Xorg和nodeapp,但这很容易解决.我已经使用node来管理服务,所以我把开始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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2710 次 |
| 最近记录: |