xvfb-run 挂在容器中

Art*_*rov 5 xvfb docker

我正在尝试容器化一个创建 .STL 文件快照的 Node 应用程序。这个应用程序是通过xvfb-run提供一个模拟 GUI 来启动的,它可以在其中生成所述快照,如果我只在没有容器的情况下运行应用程序,它就可以工作,但是当我尝试将它容器化时,它会xvfb-run挂起。容器控制台中没有打印任何内容,没有日志,并且添加-e /dev/stdoutxvfb-run不会输出任何内容。

这是我的 dockerfile:

FROM debian:latest AS build-env
WORKDIR /app
COPY src ./src
COPY tsconfig.json ./
COPY package.json ./
RUN apt-get update
RUN apt-get install -y curl
RUN apt-get install -my wget gnupg
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash
RUN apt-get install -y nodejs build-essential libxi-dev xvfb libgl1-mesa-dev libglu1-mesa-dev libglew-dev
RUN npm install .
RUN npm install -g typescript
RUN tsc
EXPOSE 3000
CMD ["xvfb-run", "node", "dist/examples/server.js"]
Run Code Online (Sandbox Code Playgroud)

示例运行(光标永远挂在那里,永远不会打印任何内容)

示例运行

编辑:只是想澄清一下它应该打印一些东西 - Express 服务器在启动时会打印一些东西,所以我可以告诉它没有启动并且出现了问题。我还可以确认该xvfb-run命令是否存在,因为在没有任何其他参数的情况下运行它会显示一条帮助消息。

Abe*_*Paz 9

也许晚了,但刚看到你的帖子。您可能需要类似tini 的东西,因此在使用使用 --init 标志docker run。这将加载初始化系统作为ENTRYPOINT

Wine是一个关于如何使用它的好例子

在 docker-compose 中使用它,只需添加init: true(在服务内)。

我也发现了类似的东西,也许对你也有用:stl-thumb

希望能帮助到你!

  • 从 v1.13 开始,当您使用“docker run --init”时,Docker 集成了 tini (2认同)