Запустите XFCE (или другие настольные среды) на Jupyter.
Это основано на https://github.com/ryanlovett/nbnovnc.
Когда это расширение будет запущено, он запустит рабочий стол Linux на однопользовательском сервере Jupyter и перемещает его в браузер с помощью VNC через Jupyter.
Это расширение требует, чтобы VNC -сервер был установлен в системе (вероятно, в изображении контейнера). Наиболее проверенным VNC -сервером является Tigervnc, в то время как Turbovnc также работает. Любой VNC -сервер, доступный в $PATH , как будет использоваться vncserver , но не было выполнено реального тестирования за пределами этих серверов.
Для примера см. Dockerfile в этом репозитории, который устанавливает Tigervnc и XFCE4.
Установите сам этот пакет, с pip от PyPI :
pip install jupyter-remote-desktop-proxyУстановите пакеты, необходимые для предоставления VNC -сервера и фактической среды Linux Desktop. Вам нужно выбрать среду рабочего стола (их много!) - вот пакеты для использования Tigervnc и световой настольной среды XFCE4 на Ubuntu 22.04:
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 параметр -это необходимо для запуска Daemons (например, DBU, PulseAudio и т. Д.), Необходимы для работы Linux для работы. Это вариант, который работает Kubernetes по умолчанию, поэтому большинству jupyterhubs на базе Kubernetes не потребуются никаких изменений для работы.