【发布时间】:2017-10-25 06:19:40
【问题描述】:
我有一个 docker 容器,我试图从中运行一个 pyqt 应用程序。除了 GUI 的一部分无法渲染外,一切都运行良好。码头工人日志把这个扔掉了:
libGL error: failed to load driver: swrast
X Error: GLXBadContext 169
Extension: 154 (Uknown extension)
Minor opcode: 6 (Unknown request)
Resource id: 0x6400003
X Error: BadValue (integer parameter out of range for operation) 2
Extension: 154 (Uknown extension)
Minor opcode: 3 (Unknown request)
Resource id: 0x0
...
QGLContext::makeCurrent(): Failed.
在我的 Dockerfile 中,我尝试安装了几乎所有我能找到的可能相关的包,包括 mesa-utils。
就 docker-compose 文件而言,它是这样的:
version: '2'
services:
gui:
build: .
volumes:
- .:/usr/src
- /tmp/.X11-unix:/tmp/.X11-unix
command: /bin/bash -c "python start.py"
environment:
- DISPLAY=unix$DISPLAY
- QT_X11_NO_MITSHM=1
devices:
- "/dev/snd:/dev/snd"
- "/dev/dri:/dev/dri"
privileged: true
有什么我可能遗漏的想法吗?
【问题讨论】:
-
有趣的一个。我怀疑问题是内核可能没有它需要的驱动程序。我个人从未尝试让 docker 在 gui 环境中工作,所以这只是我的猜测。您是否确认主机内核已加载视频驱动程序? IIRC,swarst 是用于软件渲染的,这意味着它没有使用硬件 GPU。
标签: docker pyqt docker-compose dockerfile nvidia