我需要一个单独的浏览器实例,该实例配置为连接到用于访问受限网络的特定代理,但不能用于常规浏览,并且还可以保持访问该网络的会话分开。所以我一直在使用在 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 是选项之一。