ドッカーコンテナ内でFirefox(または任意のグラフィカルアプリケーション)を実行したいと思います。VNCserver + GUIアプリケーション+ Dockerコンテナ内の仮想ディスプレイの使用
私の要件:私はコンテナを起動するときに、仮想ディスプレイを作成し、VNCサーバーを起動し、次にGUIアプリケーションを作成する必要があります。つまり、コンテナが正常に起動した後、VNCクライアント経由でコンテナ内で実行されているGUIアプリケーションに接続できます。アプリケーションを閉じると、コンテナは自動的に停止するはずです。
試み1: 私はここhttps://hub.docker.com/r/devopsil/vnc-firefox/~/dockerfile/ この例では、開発者がCMDを経由してVNCサーバを起動し、永遠に実行し、それを維持します例で開始。彼は.rcファイルの一部としてfirefoxを置くので、コンテナの起動時に起動します。 VNCクライアント経由で接続している場合は、firefoxを見ることができます。また、firefoxを閉じるか、VNCセッションを切断してもコンテナは停止しません。
試行2: 私は以下のようにDockerfileを調整しました。 「
ENTRYPOINT ["/usr/bin/x11vnc", "-usepw", "-create"]
は、容器の再構築と実行している
ドッキングウィンドウの実行--rm -p 5900 『を最後の行だけに変更(ENTRYPOINTに置き換えCMDをし、「永遠」のフラグを削除)は、』今、別の動作を持っていた: コンテナを開始しVNCクライアントを介した接続が有効になり、firefoxが数秒後に開き(メッセージ「拡張RANDRが表示されずに失われました:20」)、vnc接続を閉じた後にコンテナが自動的に停止しました。
試み3: それから私は、VNCサーバとFirefoxを起動するbashスクリプトを作成し、画像内で、このスクリプトファイルをコピーするDockerfileを変更し、エントリポイントとしてスクリプトを作りました。しかし、私は
#!/bin/bash
/usr/bin/x11vnc -forever -usepw -create &
firefox
試み4「DISPLAY変数が設定されていません」のようなエラーました: をだから私は、ドッキングウィンドウrunコマンドを経由してDISPLAY変数を渡されたが、その後エラーがすることはできません開いて表示されます。
質問:firefoxにvncserverフラグ "-create"で作成された仮想ディスプレイをどのように気に入るかわかりません。コンテナの起動時にGUIアプリケーションを起動し、GUIアプリケーションが閉じられたときに自動的にコンテナを停止するには、何が最善の方法であるか教えてください。私はdockerfileのENTRYPOINTがfirefoxに設定されるべきだと考えます。ご協力いただきありがとうございます。
私はこれを見ましたが、VNC経由でリモートからアプリケーションにアクセスしたいので、これは役に立たないです。
おそらく '/ usr/bin/x11vnc -display:1.0 -usepw -forever&'を実行することができます。 – so61pi