DockerでFirefoxを実行すると、Xがロックされます。

DockerでFirefoxを実行すると、Xがロックされます。

制限されたネットワークにアクセスするために使用されますが、通常のナビゲーションには、使用されていない特定のプロキシに接続し、そのネットワークにアクセスするセッションを別々に維持するように構成された別々のブラウザインスタンスが必要です。だから私はDockerで実行されているFirefoxを使用しています(他の権限を持つコンテナを使用してネットワークを設定します)。

以前はうまくいきましたが、今ではX全体が1〜2分間ロックされているため、マウスポインタは動き続けますが、他のものは再描画されません。ポップアップ(メニュー、コンボボックスなど)を表示すると遅延が発生するようです。他の表示変更がある可能性があります。約半年後にこのプロジェクトに戻って今日コンテナを再構築したので、問題が正確にいつ始まったのかわかりません。

私はそれを実行しています-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --init --ipc host。追加-e _X11_NO_MITSHM=1 -e _MITSHM=0と削除も試してみましたが、うまくいきますが、--ipc host同じ症状が現れます。 dbus接続設定を試みませんでした。

ホストシステムは、KDEデスクトップとともに最新の状態に保たれるUbuntu 20.04です。コンテナベースもUbuntu 20.04です。

.xsession-errors残念ながら、Firefoxのstdout / errorまたはホストにエラーはありません。これをデバッグする方法を知っていますか?

答え1

ついに問題を解決しました。

  • スタートXPula任意の固定された親ポートで(xpra start :99
  • ディスプレイをこのポート(-e DISPLAY=:99)に設定します。
  • マウントとIPCの保持(-v /tmp/.X11-unix:/tmp/.X11-unix --ipc host
  • Xpraディスプレイ接続(xpra attach :99

このソリューションは、以下からインスピレーションを得ました。このx11dockerスクリプトそのうちのxpraはオプションの1つです。

関連情報