Good day everyone!
I was hoping someone might be able to help me with some issues around running Interactive Tools inside a Docker‑based Galaxy deployment.
Our current setup:
- We maintain our own Docker image, based loosely on the official Galaxy Docker image.
- Galaxy runs on a VM in Azure (though we’ll soon migrate to Kubernetes).
- All tools run via SLURM on an Azure CycleCloud cluster, and each tool executes inside an Apptainer container.
- Galaxy’s galaxy (and supporting data) live on NFS fileshares, since it must be accessible from the SLURM nodes.
We’ve recently had requests for tools that have a visual or interactive frontend (for example, a Python Shiny application). Ideally, we’d like to support these via Interactive Tools.
However… this is where things become challenging.
-
Binding the Docker socket into the Galaxy container.
- This was suggested in some discussions, but unfortunately it doesn’t work for us.
- When Docker inside the container uses the host’s socket, file path resolution becomes incorrect.
-
Docker-in-Docker (dind)
- Running Docker inside the Galaxy container also doesn’t seem viable.
- Containers launched inside Galaxy’s container end up on a different Docker network and therefore cannot be reached from the main Galaxy container (no shared network namespace).
- This breaks the communication that Interactive Tools rely on, atleast, thats what I speculate.
-
Issues with interactivetools_map.sqlite.
- The SQLite database is created, but it never gets populated.
- No entries are added when trying to launch Interactive Tools.
- This makes me think something is going wrong very early in the process, but logs haven’t been very revealing so far.
Does anyone have working examples of Interactive Tools running in a Docker‑based or containerized Galaxy deployment?
Are there recommended configurations for this scenario (tool XML examples, job_conf settings, interactive environment configs)?
How have others solved the container‑networking problem when Galaxy itself runs inside Docker?
Has anyone run into the empty interactivetools_map.sqlite issue before?
Any advice, examples, or pointers would be really appreciated!
Thanks in advance!