我正在尝试将一个生成 .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
命令存在,因为不带任何其他参数运行它会显示一个帮助信息。