docker - xvfb-run 在容器中挂起
问题描述
我正在尝试将创建 .STL 文件快照的 Node 应用程序容器化。启动此应用程序是xvfb-run
为了向它提供一个模拟 GUI,它可以在其中生成所述快照,如果我只是在没有容器的情况下运行应用程序,它就可以工作,但是当我尝试将它容器化时,它xvfb-run
只是挂起。容器控制台中没有打印任何内容,没有日志,并且添加-e /dev/stdout
到xvfb-run
不会输出任何内容。
这是我的码头文件:
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这样的东西,所以当你这样做的时候使用 --init 标志docker run
。这将加载初始化系统作为ENTRYPOINT
葡萄酒是如何使用它的一个很好的例子
要在 docker-compose 中使用它,只需添加init: true
(在服务内)。
我也发现了类似的东西,也许它对你也有用:stl-thumb
希望能帮助到你!
推荐阅读
- docker - 为什么 docker compose 试图提取图像而不是创建新图像?
- javascript - 为什么这段代码给了我“Uncaught TypeError: Cannot read properties of null (reading 'push')”错误?
- ios - SwiftUI 像内置导航一样滑过动画
- python - pip 安装我的包,但我无法导入它 Python 3.10
- javascript - 使用手动递归 setTimeout 而不是 @Interval 在 NestJS 中调度重复发生的任务
- typescript - 如何在 TypeScript 中遍历递归生成器?
- javascript - 由于 SSL 错误,Android Webview 应用程序无法在 HTTPS 上显示任何内容
- sql - DBeaver SQL 是否有恢复查询的选项?
- python - Python没有从任何包播放音频
- amazon-web-services - 通过 AWS VPN Client(不在 VPC 网络上)访问非集群 Redis elasticache