Exécutez XFCE (ou d'autres environnements de bureau) sur Jupyter.
Ceci est basé sur https://github.com/ryanlovett/nbnovnc.
Lorsque cette extension est lancée, elle exécutera un bureau Linux sur le serveur à utilisateur unique Jupyter et le proxyra à votre navigateur à l'aide de VNC via Jupyter.
Cette extension nécessite qu'un serveur VNC soit installé sur le système (probablement, dans l'image du conteneur). Le serveur VNC le plus testé est TiGervnC, tandis que Turbovnc fonctionne également. Tout serveur VNC disponible dans $PATH comme vncserver sera utilisé, mais aucun test réel en dehors de ces serveurs n'a été effectué.
Pour un exemple, consultez le Dockerfile dans ce référentiel qui installe TiGervnc et XFCE4.
Installez ce package lui-même, avec pip de PyPI :
pip install jupyter-remote-desktop-proxyInstallez les packages nécessaires pour fournir un serveur VNC et l'environnement de bureau Linux réel. Vous devez choisir un environnement de bureau (il y en a beaucoup!) - Voici les packages pour utiliser Tigervnc et l'environnement de bureau XFCE4 léger sur Ubuntu 22.04:
dbus-x11
xfce4
xfce4-panel
xfce4-session
xfce4-settings
xorg
xubuntu-icon-theme
tigervnc-standalone-server
tigervnc-xorg-extension
La façon recommandée de les installer est à partir de votre gestionnaire de packages de systèmes Linux de choix (comme APT).
Pour tourner un tel cahier, construisez d'abord le conteneur:
$ docker build -t $( whoami ) / $( basename ${PWD} ) .Vous pouvez maintenant exécuter l'image:
$ 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 *Maintenant, dirigez-vous vers l'URL montré et vous serez très bien avec un bureau XFCE.
Remarquez le paramètre --security-opt seccomp=unconfined - Ceci est nécessaire pour démarrer les démons (tels que les DBU, PulsEaudio, etc.) nécessaires pour que Linux bureau fonctionne. C'est l'option avec laquelle Kubernetes exécute par défaut, donc la plupart des JupyterHubs basés sur Kubernetes n'auront pas besoin de modifications pour que cela fonctionne.