jupyterでXFCE(または他のデスクトップ環境)を実行します。
これは、https://github.com/ryanlovett/nbnovncに基づいています。
この拡張機能が起動すると、JupyterシングルユーザーサーバーでLinuxデスクトップを実行し、Jupyterを介してVNCを使用してブラウザにプロキシをプロキシにします。
この拡張機能には、VNCサーバーをシステムにインストールする必要があります(コンテナ画像内)。最もテストされたVNCサーバーはTigervncですが、TurbovNCも機能します。 vncserverとして$PATHで利用可能なVNCサーバーは使用されますが、これらのサーバーの外で実際のテストは実行されていません。
たとえば、tigervncとxfce4をインストールするこのリポジトリのDockerfile参照してください。
このパッケージ自体を、 PyPIからのpipでインストールします。
pip install jupyter-remote-desktop-proxyVNCサーバーと実際のLinuxデスクトップ環境を提供するために必要なパッケージをインストールします。デスクトップ環境を選択する必要があります(多くのことがあります!) - ubuntu 22.04でtigervncと軽量xfce4デスクトップ環境を使用するパッケージは次のとおりです。
dbus-x11
xfce4
xfce4-panel
xfce4-session
xfce4-settings
xorg
xubuntu-icon-theme
tigervnc-standalone-server
tigervnc-xorg-extension
これらをインストールする推奨される方法は、選択したLinuxシステムパッケージマネージャー(APTなど)からのものです。
そのようなノートをスピンアップするには、最初にコンテナを構築します。
$ docker build -t $( whoami ) / $( basename ${PWD} ) .これで、画像を実行できます。
$ docker run --rm --security-opt seccomp=unconfined -p 8888:8888 $( whoami ) / $( basename ${PWD} )
Executing the command: jupyter notebook
[I 12:43:59.148 NotebookApp] Writing notebook server cookie secret to /home/jovyan/.local/share/jupyter/runtime/notebook_cookie_secret
[I 12:44:00.221 NotebookApp] JupyterLab extension loaded from /opt/conda/lib/python3.7/site-packages/jupyterlab
[I 12:44:00.221 NotebookApp] JupyterLab application directory is /opt/conda/share/jupyter/lab
[I 12:44:00.224 NotebookApp] Serving notebooks from local directory: /home/jovyan
[I 12:44:00.225 NotebookApp] The Jupyter Notebook is running at:
[I 12:44:00.225 NotebookApp] http://924904e0a646:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] or http://127.0.0.1:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
[I 12:44:00.225 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 12:44:00.229 NotebookApp]
To access the notebook, open this file in a browser:
file:///home/jovyan/.local/share/jupyter/runtime/nbserver-8-open.html
Or copy and paste one of these URLs:
http://924904e0a646:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
or http://127.0.0.1:8888/ ? token=40475e553b7671b9e93533b97afe584fa2030448505a7d83
* snip *ここで、表示されているURLに向かうと、XFCEデスクトップが付いています。
--security-opt seccomp=unconfinedこれは、Linuxデスクトップが動作するために必要なDaemons(dbus、pulseaudioなど)を開始するために必要です。これは、kubernetesがデフォルトで実行するオプションであるため、ほとんどのKubernetesベースのJupyterhubsは、これが機能するために変更を必要としません。