我正在尝试将创建.STL文件快照的Node应用程序容器化。此应用程序是通过xvfb-run
启动的,以提供一个可在其中生成所述快照的模拟GUI,并且如果我只运行没有容器的应用程序就可以工作,但是当我尝试对其进行容器化时,xvfb-run
会挂起。容器控制台中未打印任何内容,没有日志,并且将-e /dev/stdout
添加到xvfb-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"]
示例运行(光标永远悬在那儿,什么都没打印出来]
编辑:只是想澄清它应该打印某些东西-Express服务器在启动时会打印一些东西,因此我可以知道它没有启动并且出了点问题。我还可以确认是否存在xvfb-run
命令,因为在没有任何其他参数的情况下运行该命令会显示帮助消息。
可能已经晚了,但是刚刚看到了您的帖子。您可能需要类似tini的内容,因此在执行docker run
时use --init标志。这将通过ENTRYPOINT
Wine是有关如何使用它的好例子
并且在use it in docker-compose中,只需添加init: true
(在服务内部)。
我也发现了类似的内容,也许对您也有用:stl-thumb
希望有帮助!