เรียกใช้ 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 จริง คุณต้องเลือกสภาพแวดล้อมเดสก์ท็อป (มีมากมาย!) - นี่คือแพ็คเกจที่จะใช้ 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 System ที่เลือก (เช่น 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 (เช่น DBUS, Pulseaudio ฯลฯ ) ที่จำเป็นสำหรับ Linux Desktop ในการทำงาน นี่คือตัวเลือก Kubernetes ทำงานโดยค่าเริ่มต้นดังนั้น JupyterHubs ที่ใช้ Kubernetes ส่วนใหญ่จะไม่จำเป็นต้องมีการแก้ไขใด ๆ เพื่อให้ได้ผล