【问题标题】:Running GUI from a container on a mac resolve in "libGL error: No matching fbConfigs or visuals found"从 Mac 上的容器运行 GUI 解决“libGL 错误:未找到匹配的 fbConfigs 或视觉对象”
【发布时间】:2017-03-28 15:13:19
【问题描述】:

我正在尝试在我的 Mac 上运行基于 ubuntu:15.10 的容器。

我运行以下命令

docker run -i -v /tmp/.X11-unix:/tmp/. -e DISPLAY=192.168.0.104:0 --privileged mycompany/mycontainer

(IP 取自我的 en0:inet using ifconfig)

我收到以下错误:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  25
  Current serial number in output stream:  26

此容器在另一个团队成员 Ubuntu 操作系统上运行,没有任何问题。

任何想法是什么导致了这个错误?

【问题讨论】:

    标签: macos docker x11-forwarding


    【解决方案1】:

    我在 MacOS 的 docker 容器中运行 SUMO 模拟 GUI 时遇到了同样的问题。

    作为一种临时解决方案或变通方法,对我有用的是将 XQuartz 版本降级到 2.7.8,正如 https://bugs.freedesktop.org/show_bug.cgi?id=96433 中所建议的那样

    我仍然收到错误,但 GUI 确实可以工作。

    【讨论】:

      【解决方案2】:

      我已将 Xquartz 降级到 2.7.8 版,但我的应用程序打开时像黑窗一样并立即关闭。此容器的日志包含相同的问题:

      libGL error: No matching fbConfigs or visuals found
      libGL error: failed to load driver: swrast
      ...
      QOpenGLShaderProgram: could not create shader program
      QOpenGLShader: could not create shader
      QOpenGLShader: could not create shader
      shader compilation failed:
      QOpenGLShaderProgram::uniformLocation(matrix): shader program is not linked
      QOpenGLShaderProgram::uniformLocation(opacity): shader program is not linked
      QOpenGLShaderProgram: could not create shader program
      QOpenGLShader: could not create shader
      QOpenGLShader: could not create shader
      shader compilation failed: 
      ""
      QOpenGLShaderProgram::uniformLocation(qt_Matrix): shader program is not linked
      QOpenGLShaderProgram: could not create shader program
      QOpenGLShader: could not create shader
      QOpenGLShader: could not create shader
      shader compilation failed: 
      ""
      QOpenGLShaderProgram::uniformLocation(matrix): shader program is not linked
      QOpenGLShaderProgram::uniformLocation(opacity): shader program is not linked
      QOpenGLShaderProgram: could not create shader program
      QOpenGLShader: could not create shader
      QOpenGLShader: could not create shader
      shader compilation failed: 
      ""
      QOpenGLShaderProgram::uniformLocation(qt_Matrix): shader program is not linked
      

      【讨论】:

      • 如果您有相关问题,请留下评论而不是答案,如果您认为可以添加更多信息,请发送新答案链接原始答案并添加您的信息。
      【解决方案3】:

      如果您的容器尝试在脚本中运行 Chrome,那么您可以使用 Chrome 的 SwiftShader 软件渲染器 - 它适用于 XQuartz 2.7.11:

      chromium-browser --use-gl=swiftshader
      

      【讨论】:

        猜你喜欢
        • 2020-09-03
        • 2019-06-21
        • 2021-09-10
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-09
        • 2016-11-12
        • 2013-08-01
        相关资源
        最近更新 更多