-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add image with Linux Desktop environment in it #1961
Conversation
The JupyterHub project's [jupyter-remote-desktop-proxy](https://github.com/jupyterhub/jupyter-remote-desktop-proxy) has been getting a bunch of good use lately, particularly around bringing users who wouldn't traditionally use notebooks *alone*. For example, in this climate science workshop's blog post on the jupyter blog (https://blog.jupyter.org/desktop-gis-software-in-the-cloud-with-jupyterhub-ddced297019a?postPublishedType=initial), you can see how being able to use *both* notebooks and linux desktop software (qgis, in this case) in the same way brings an entirely new class of users to the Jupyter ecosystem. However, running this linux desktop environment inside a container isn't particularly easy, and getting a base image running will be useful to a lot of people. I can provide links to different communities that this would benefit if needed. This PR adds such a base image that others may inherit from to add specific packages on top. If this looks good, I can write up documentation on how to add specific images - and we can use qgis as a good example.
for more information, see https://pre-commit.ci
This project hasn't added images for a long time, but during the last few months, this has changed. I see that as enabled by an amazing effort by @mathbunnyru helping the project catch up on a huge amount of maintenance. To ensure healthy maintenance of this project, I consider its crucial that the issue about defining an image policy in #1958 is completed before this PR is considered. |
why don't you use KasmVNC ? |
Thanks for raising this point @yuvipanda - this kind of feature would be extremely helpful for the U.S. Greenhouse Gas Center jupyterhub we're currently deploying. |
@bjornjorgensen mostly because tigervnc is where all the current experience has been. I think there are definitely many other options to explore. |
Having reasoned about this further I think that jupyter/docker-stacks shouldn't (at least not yet) embrace a new image including jupyter-remote-desktop-proxy together with system level dependencies to present and remote view a Linux desktop user interface. I reason that adding an image like this is similar to adding a new image for a another programming language besides what the project currently maintain images for (Julia, Python, R). Doing that would introduce a new set of complexities for this projects maintainance. Practically for this specific image, I think it could pivot towards the jupyterhub/jupyter-remote-desktop-proxy project's existing Dockerfile. It currently builds on the jupyter/base-image already. Sorry for pushing back on this @yuvipanda, I'm very happy to help work this in jupyterhub/jupyter-remote-desktop-proxy though! |
I am pretty happy with that resolution, @consideRatio! I think that would also allow us to offer more variants, including an image with qgis pre-installed perhaps! I'll close this one, and move it over there. |
Setting up docker images that run applications well can be a little complex, so we provide a simple base image that makes that easy. In addition, we also provide some simple derived images that have popular datascience related desktop applications set up correctly and ready to use. The images will be published *only* to [quay.io](https://quay.io/organization/jupyter-remote-desktop-proxy), to make sure people don't run into pulling limits from Dockerhub. \## Base image `quay.io/jupyter-remote-desktop-proxy/base` This image is based off the `jupyter/minimal-notebook` image maintained as part of jupyter/docker-stacks, and adds the following features: 1. The lightweight [XFCE4 desktop environment](https://www.xfce.org/) 2. The [Firefox web browser](https://www.mozilla.org/en-US/firefox/new/) 3. A helper script to setup [.desktop](https://wiki.archlinux.org/title/desktop_entries) files correctly, so applications can show up in the Desktop and Application launcher. 3. A helper script to setup [MIME associations](https://wiki.archlinux.org/title/XDG_MIME_Applications) correctly, so users can double click certain kinds of files and have them open in specific applications. \## QGIS image `quay.io/jupyter-remote-desktop-proxy/qgis` This image is based off the base image, and installs the popular [QGIS](https://qgis.org/en/site/) application. A desktop launcher icon is provided, along with filetype associations so users can double click most files that can be opend via QGIS and they will be! Brings in jupyter/docker-stacks#1961 \## Automated building There's a `build.py` that automatically builds and pushes the images, dealing with dependencies as appropriate.
Setting up docker images that run applications well can be a little complex, so we provide a simple base image that makes that easy. In addition, we also provide some simple derived images that have popular datascience related desktop applications set up correctly and ready to use. The images will be published *only* to [quay.io](https://quay.io/organization/jupyter-remote-desktop-proxy), to make sure people don't run into pulling limits from Dockerhub. \## Base image `quay.io/jupyter-remote-desktop-proxy/base` This image is based off the `jupyter/minimal-notebook` image maintained as part of jupyter/docker-stacks, and adds the following features: 1. The lightweight [XFCE4 desktop environment](https://www.xfce.org/) 2. The [Firefox web browser](https://www.mozilla.org/en-US/firefox/new/) 3. A helper script to setup [.desktop](https://wiki.archlinux.org/title/desktop_entries) files correctly, so applications can show up in the Desktop and Application launcher. 3. A helper script to setup [MIME associations](https://wiki.archlinux.org/title/XDG_MIME_Applications) correctly, so users can double click certain kinds of files and have them open in specific applications. \## QGIS image `quay.io/jupyter-remote-desktop-proxy/qgis` This image is based off the base image, and installs the popular [QGIS](https://qgis.org/en/site/) application. A desktop launcher icon is provided, along with filetype associations so users can double click most files that can be opend via QGIS and they will be! Brings in jupyter/docker-stacks#1961 \## Automated building There's a `build.py` that automatically builds and pushes the images, dealing with dependencies as appropriate. Thanks to @MattF-NSIDC for figuring out a lot of the qgis desktop & mime stuff. Co-authored-by: Matt Fisher <matt.fisher@nsidc.org>
Thank you very much for those links, @benz0li! I appreciate those. I'm currently the maintainer of the jupyter-earth image, and my hope is to eventually split that image up into many different ones. This would be one of them. The other images are all super cool! I think I'd like to base one off the jupyter dockerstacks one, and use mamba in general rather than apt. But lots of XFCE stuff for me to reuse (and I'll make sure to credit appropriately). I've moved this one to jupyterhub/jupyter-remote-desktop-proxy#51, and expanded it to include a qgis specific image as well. Thank you for the discussion, @consideRatio! |
Setting up docker images that run applications well can be a little complex, so we provide a simple base image that makes that easy. In addition, we also provide some simple derived images that have popular datascience related desktop applications set up correctly and ready to use. The images will be published *only* to [quay.io](https://quay.io/organization/jupyter-remote-desktop-proxy), to make sure people don't run into pulling limits from Dockerhub. \## Base image `quay.io/jupyter-remote-desktop-proxy/base` This image is based off the `jupyter/minimal-notebook` image maintained as part of jupyter/docker-stacks, and adds the following features: 1. The lightweight [XFCE4 desktop environment](https://www.xfce.org/) 2. The [Firefox web browser](https://www.mozilla.org/en-US/firefox/new/) 3. A helper script to setup [.desktop](https://wiki.archlinux.org/title/desktop_entries) files correctly, so applications can show up in the Desktop and Application launcher. 3. A helper script to setup [MIME associations](https://wiki.archlinux.org/title/XDG_MIME_Applications) correctly, so users can double click certain kinds of files and have them open in specific applications. \## QGIS image `quay.io/jupyter-remote-desktop-proxy/qgis` This image is based off the base image, and installs the popular [QGIS](https://qgis.org/en/site/) application. A desktop launcher icon is provided, along with filetype associations so users can double click most files that can be opend via QGIS and they will be! Brings in jupyter/docker-stacks#1961 \## Automated building There's a `build.py` that automatically builds and pushes the images, dealing with dependencies as appropriate. Thanks to @MattF-NSIDC for figuring out a lot of the qgis desktop & mime stuff. Co-authored-by: Matt Fisher <matt.fisher@nsidc.org>
Setting up docker images that run applications well can be a little complex, so we provide a simple base image that makes that easy. In addition, we also provide some simple derived images that have popular datascience related desktop applications set up correctly and ready to use. The images will be published *only* to [quay.io](https://quay.io/organization/jupyter-remote-desktop-proxy), to make sure people don't run into pulling limits from Dockerhub. \## Base image `quay.io/jupyter-remote-desktop-proxy/base` This image is based off the `jupyter/minimal-notebook` image maintained as part of jupyter/docker-stacks, and adds the following features: 1. The lightweight [XFCE4 desktop environment](https://www.xfce.org/) 2. The [Firefox web browser](https://www.mozilla.org/en-US/firefox/new/) 3. A helper script to setup [.desktop](https://wiki.archlinux.org/title/desktop_entries) files correctly, so applications can show up in the Desktop and Application launcher. 3. A helper script to setup [MIME associations](https://wiki.archlinux.org/title/XDG_MIME_Applications) correctly, so users can double click certain kinds of files and have them open in specific applications. \## QGIS image `quay.io/jupyter-remote-desktop-proxy/qgis` This image is based off the base image, and installs the popular [QGIS](https://qgis.org/en/site/) application. A desktop launcher icon is provided, along with filetype associations so users can double click most files that can be opend via QGIS and they will be! Brings in jupyter/docker-stacks#1961 \## Automated building There's a `build.py` that automatically builds and pushes the images, dealing with dependencies as appropriate. Thanks to @MattF-NSIDC for figuring out a lot of the qgis desktop & mime stuff. Co-authored-by: Matt Fisher <matt.fisher@nsidc.org>
The JupyterHub project's
jupyter-remote-desktop-proxy has been getting a bunch of good use lately, particularly around bringing users who wouldn't traditionally use notebooks alone. For example, in this climate science workshop's blog post on the jupyter
blog (https://blog.jupyter.org/desktop-gis-software-in-the-cloud-with-jupyterhub-ddced297019a?postPublishedType=initial), you can see how being able to use both notebooks and linux desktop software (qgis, in this case) in the same way brings an entirely new class of users to the Jupyter ecosystem.
However, running this linux desktop environment inside a container isn't particularly easy, and getting a base image running will be useful to a lot of people. I can provide links to different communities that this would benefit if needed.
This PR adds such a base image that others may inherit from to add specific packages on top. If this looks good, I can write up documentation on how to add specific images - and we can use qgis as a good example.
Describe your changes
Issue ticket if applicable
Checklist (especially for first-time contributors)