从 docker 运行 Firefox 时 X 锁定

从 docker 运行 Firefox 时 X 锁定

我需要一个单独的浏览器实例,该实例配置为连接到用于访问受限网络的特定代理,但不能用于常规浏览,并且还可以保持访问该网络的会话分开。所以我一直在使用在 Docker 中运行的 Firefox(使用另一个特权容器为其设置网络)。

它曾经工作得很好,但现在它开始导致整个 X 的锁定总是持续一两分钟,其中鼠标指针继续移动,但没有其他东西正在重绘。滞后似乎是通过显示弹出窗口(菜单、组合框等)触发的;可能还有其他一些显示变化。大约半年后我又回到了这个项目,今天重建了容器,所以我不确定问题到底是什么时候开始的。

我正在运行它-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --init --ipc host。我还尝试添加-e _X11_NO_MITSHM=1 -e _MITSHM=0和删除--ipc host,这也有效,但显示相同的症状。我没有尝试设置 dbus 连接。

主机系统是Ubuntu 20.04,保持最新,带有KDE桌面。容器基础也是Ubuntu 20.04。

.xsession-errors不幸的是,Firefox 的标准输出/错误和主机上都没有错误。知道如何调试这个吗?

答案1

我最终解决了问题所在:

  • 开始X普拉在任意固定高端口 ( xpra start :99)
  • 将显示器设置到该端口 ( -e DISPLAY=:99)
  • 保留挂载和 ipc ( -v /tmp/.X11-unix:/tmp/.X11-unix --ipc host)
  • 连接 xpra 显示屏 ( xpra attach :99)

该解决方案的灵感来自这个 x11docker 脚本其中 xpra 是选项之一。

相关内容