Skip to content
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

Closed
wants to merge 26 commits into from
Closed

Conversation

yuvipanda
Copy link
Contributor

@yuvipanda yuvipanda commented Aug 8, 2023

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:

  1. The lightweight XFCE4 desktop environment
  2. The Firefox web browser
  3. A helper script to setup .desktop files correctly, so applications can show up in the Desktop and Application launcher.
  4. A helper script to setup MIME associations 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 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

TODO at a later time

  • ARM image building support
  • Automated integration tests - these are difficult as we'll have to launch a browser, connect to the VNC server in the container, and somehow visually verify things work.

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>
@github-actions
Copy link

github-actions bot commented Aug 8, 2023

Binder 👈 Launch a binder notebook on this branch for commit 1e93ab5

I will automatically update this comment whenever this PR is modified

Binder 👈 Launch a binder notebook on this branch for commit 4513b41

Binder 👈 Launch a binder notebook on this branch for commit 9db1757

Binder 👈 Launch a binder notebook on this branch for commit 660fefe

Binder 👈 Launch a binder notebook on this branch for commit 880077a

Binder 👈 Launch a binder notebook on this branch for commit 4379b35

Binder 👈 Launch a binder notebook on this branch for commit 5d781f0

Binder 👈 Launch a binder notebook on this branch for commit 10b5740

Binder 👈 Launch a binder notebook on this branch for commit 7dbf1fa

Binder 👈 Launch a binder notebook on this branch for commit 261fa44

Binder 👈 Launch a binder notebook on this branch for commit ac05db1

Binder 👈 Launch a binder notebook on this branch for commit 6963970

Binder 👈 Launch a binder notebook on this branch for commit 28f4034

Binder 👈 Launch a binder notebook on this branch for commit c09c6aa

Binder 👈 Launch a binder notebook on this branch for commit 7040cfb

Binder 👈 Launch a binder notebook on this branch for commit ca6f889

Binder 👈 Launch a binder notebook on this branch for commit fc2a159

Binder 👈 Launch a binder notebook on this branch for commit e4387be

Binder 👈 Launch a binder notebook on this branch for commit 4adc96e

Binder 👈 Launch a binder notebook on this branch for commit 8844389

@yuvipanda yuvipanda marked this pull request as draft August 8, 2023 19:19
@yuvipanda yuvipanda marked this pull request as ready for review August 24, 2023 03:18
@yuvipanda yuvipanda requested review from consideRatio and removed request for consideRatio August 24, 2023 03:18
@yuvipanda yuvipanda marked this pull request as draft August 24, 2023 03:24
@yuvipanda
Copy link
Contributor Author

I still need to test that the .desktop associations and mime associations actually happen when used with a JupyterHub!

@consideRatio
Copy link
Member

Wieeee nice work on this @yuvipanda! I opened #55 to discuss image adding policy to offload this PR from such discussion.

yuvipanda added a commit that referenced this pull request Aug 25, 2023
- 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
@manics
Copy link
Member

manics commented Nov 8, 2023

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.

@yuvipanda
Copy link
Contributor Author

yuvipanda commented Dec 18, 2023

After reflecting on this for a while, I've written #55 (comment) and am going to close this PR

@yuvipanda yuvipanda closed this Dec 18, 2023
@yuvipanda
Copy link
Contributor Author

@manics in practice that's what I think I'll end up doing :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants