尝试通过 x11 连接在容器中运行 Tauri 应用程序时出现 WebKitWebProcess / Gdk 错误

问题描述 投票:0回答:2

我正在尝试显示在 Docker 容器中运行但通过 unix 套接字连接到主机的 X11 服务器的基本 Tauri 应用程序 GUI。但是我在运行时收到以下警告和错误

npm run tauri dev

(WebKitWebProcess:6009): Gdk-ERROR **: 00:17:37.147: The program 'WebKitWebProcess' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 258 error_code 2 request_code 152 (GLX) minor_code 34)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the GDK_SYNCHRONIZE environment
   variable to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

我在主机上打开了一个 GUI 窗口,但它是空白的(但应该包含一些文本/HTML 标记)。

因为我能够从容器中运行 Firefox 和 Gedit 而不是 gnome 终端,我认为这是一些权限问题或者缺少一些包来让基于 Webkit 的 GUI 窗口连接到我主机的 X 服务器。

$DISPLAY
/tmp/.X11-unix
设置正确。在主机上我设置了
xhost +

容器以

node
用户身份运行。货物安装在
/home/node/.cargo/bin
/home/node
root:node
拥有,对文件夹具有
775
权限,对文件具有
664
权限(
+x
对可执行脚本)。

我刚刚开始使用 Rust 和 Tauri,也不是 X 服务器和 Docker 网络方面的大专家。

任何想法如何让它工作?

docker x11 tauri
2个回答
0
投票

我最终使用 Qemu + Virt-Manager 而不是 docker。对于初学者,我使用了一个 Ubuntu 模板,因为剪贴板共享开箱即用,我的主机也在 Ubuntu 上运行。声音共享和视频播放也开箱即用。如果我遇到每个应用程序都需要一个单独的 VM 的情况,那么我会使用我的极简主义 Arch 模板来启动 VM - 大小应该非常接近 docker 容器的大小。

编辑: 有人告诉我,LXC/LXD 和 Podman 可能是更好的选择。


0
投票

尝试在您的 docker 命令或 docker-compose.yml 文件中添加

ipc = "host"
。这为我解决了问题,尽管我还有其他错误代码。

© www.soinside.com 2019 - 2024. All rights reserved.