-
Notifications
You must be signed in to change notification settings - Fork 106
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 images that can be used directly by end users #51
Conversation
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 <[email protected]>
👈 Launch a binder notebook on this branch for commit 1e93ab5 I will automatically update this comment whenever this PR is modified 👈 Launch a binder notebook on this branch for commit 4513b41 👈 Launch a binder notebook on this branch for commit 9db1757 👈 Launch a binder notebook on this branch for commit 660fefe 👈 Launch a binder notebook on this branch for commit 880077a 👈 Launch a binder notebook on this branch for commit 4379b35 👈 Launch a binder notebook on this branch for commit 5d781f0 👈 Launch a binder notebook on this branch for commit 10b5740 👈 Launch a binder notebook on this branch for commit 7dbf1fa 👈 Launch a binder notebook on this branch for commit 261fa44 👈 Launch a binder notebook on this branch for commit ac05db1 👈 Launch a binder notebook on this branch for commit 6963970 👈 Launch a binder notebook on this branch for commit 28f4034 👈 Launch a binder notebook on this branch for commit c09c6aa 👈 Launch a binder notebook on this branch for commit 7040cfb 👈 Launch a binder notebook on this branch for commit ca6f889 👈 Launch a binder notebook on this branch for commit fc2a159 👈 Launch a binder notebook on this branch for commit e4387be 👈 Launch a binder notebook on this branch for commit 4adc96e 👈 Launch a binder notebook on this branch for commit 8844389 |
Otherwise, docker goes and pulls the base image from dockerhub, rather than using whatever is already in the local docker cache!
So future builds will actually find this built image in the local docker and use it, instead of pulling from quay.io
I do not want these
Without explicitly saying it, docker run seems to imply this
Too much noise
I still need to test that the .desktop associations and mime associations actually happen when used with a JupyterHub! |
Wieeee nice work on this @yuvipanda! I opened #55 to discuss image adding policy to offload this PR from such discussion. |
- Don't run apt-get upgrade, is not necessary - Use tigervnc from apt rather than what we ship. This allows the image to work on ARM machines as well as getting us a newer version of everything. - Reorder and use COPY --chown to make rapid development faster with better caching - Remove firefox install from apt, as that no longer works anyway (it' a snap). That's set up with #51 correctly
Until #64 is merged and released
Necessary for s3 support
What do you think about moving these to a separate repo? I expect jupyter-remote-desktop-proxy to have relatively few updates and releases whereas these images are likely to see more frequent updates, and will probably have a different tagging scheme to the pypi package. |
After reflecting on this for a while, I've written #55 (comment) and am going to close this PR |
@manics in practice that's what I think I'll end up doing :) |
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, 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:QGIS image
quay.io/jupyter-remote-desktop-proxy/qgis
This image is based off the base image, and installs the popular QGIS 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.
TODO
Dockerfile
to be purely about testing Simplify developmental dockerfile #58TODO at a later time