Desktop Containers Guide?

Are there any up to date guides of containerized desktops? That or if anyone has an implementation they are willing to share.

I remember there was a tips and tricks call from Dec 2021 but the recording was deleted. This presentation had a unique concept of using TMUX to escape the container which was interesting but I can’t find any other info about.

I also know there is an old thread on this forum for Mate but there’s no full example and some confusion about what should or should not be run in the container.

3.0 has this built in now.

Thanks for that! That will help a lot.

When using ‘vnc_container’ template is it possible to run commands prior to the start of the container or does get executed inside the container? Using this how would one say launch a tmux session on the host so the user can connect to it from inside the container? I can’t get how cool this was in the tips and tricks call from December 2021 was when it did something like this.

IIRC everything’s executed inside the container.

What about using script_wrapper?

something like:

  template: "vnc_container"
  container_path: "/fs1/software/containers/desktops/rhel8.sif"
  container_bindpath: "/run"
  container_command: "apptainer"
  script_wrapper: |
    ./ &

Where is a script inside the apps template folder.

I’ll have some students do testing just want to confirm if the idea is sound first.

I can’t say for sure. But also I’m not really what you’re trying to do. I mean what’s the value of having tmux here? You can always connect to the desktop and it always keeps its state - so I’m not sure what problem you’re trying to solve with tmux.

There’s a few reasons but running additional containers is one of them. Not sure if apptainer can be run inside an apptainer container. For instance we containerize Matlab so we would need a way to escape the container to run the matlab container to show the gui in our containerized desktop. Tmux is really nice for this as you can run it on the host and bind mount the tmux session socket file inside the container and consume it.

Some of this could be alleviated if container_path / container_module could be set from form.yml so we could use the form to allow users to select which container they want to use with the app. I forgot I could do this with ERB.