Execute XFCE (ou outros ambientes de desktop) em Jupyter.
Isso é baseado em https://github.com/ryanlovett/nbnovnc.
Quando essa extensão for lançada, ele executará um desktop do Linux no servidor Jupyter Single-User e proxy-o ao seu navegador usando o VNC via Jupyter.
Essa extensão exige que um servidor VNC seja instalado no sistema (provavelmente, na imagem do contêiner). O servidor VNC mais testado é o TigervNC, enquanto o TurboVNC também funciona. Qualquer servidor VNC disponível no $PATH como vncserver será usado, mas nenhum teste real fora desses servidores foi executado.
Para um exemplo, consulte o Dockerfile neste repositório que instala Tigervnc e XFCE4.
Instale este próprio pacote, com pip da PyPI :
pip install jupyter-remote-desktop-proxyInstale os pacotes necessários para fornecer um servidor VNC e o ambiente real do Linux Desktop. Você precisa escolher um ambiente de desktop (existem muitos!) - Aqui estão os pacotes para usar o TigervNC e o ambiente de desktop XFCE4 leve no Ubuntu 22.04:
dbus-x11
xfce4
xfce4-panel
xfce4-session
xfce4-settings
xorg
xubuntu-icon-theme
tigervnc-standalone-server
tigervnc-xorg-extension
A maneira recomendada de instalá -las é do seu gerenciador de pacotes de sistema Linux de escolha (como APT).
Para aumentar esse caderno, primeiro construa o contêiner:
$ docker build -t $( whoami ) / $( basename ${PWD} ) .Agora você pode executar a imagem:
$ 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 *Agora vá para o URL mostrado e você será grande com uma área de trabalho XFCE.
Observe o --security-opt seccomp=unconfined -é necessário iniciar daemons (como DBUs, pulseaudio, etc.) necessários para que o Linux Desktop funcione. Esta é a opção que Kubernetes é executada por padrão; portanto, a maioria dos jupyterhubs baseados em Kubernetes não precisará de nenhuma modificação para que isso funcione.