Hello,
I am trying to run SlicerTMS as two containers in a docker-compose but I am having issues using the pyigtl python library to send the data between the two containers.
I have got a container to send the data from a container to my local machine but that does not work for sending data between containers.
Likely it is just a modification to the the SlicerTMS code that I missed.
I will also add a link to the repo for the project and a brief explanation.
Simplistically, the docker compose creates two containers slicergui which hosts 3D Slicer 5.8.1 accessible using novnc through the web browser and installs the necessary extensions (OpenIGTLinkIF does need to be re-installed manually), and tmsserver which has the python server where SlicerTMS’s ai predictions occur.
I have been able to trigger the tmsserver to register a connection from within the slicergui container, but never with the pyigtl library needed to send the correct data
I haven’t tried to use SlicerTMS with docker, but I can’t think of anything fundamental that would be different. I guess you should doublecheck the port mappings and maybe try to make some simple pyigtl experiments to confirm that simpler things work.
Hi, thanks for the reply.
Just building simpler tests at the moment. I noticed whilst running a test script that the slicergui was not using the locally modified version of SlicerTMS for whatever reason. This may not be the only issue but it is likely part of it.
Yes, that sounds like a docker issue. You should be able to configure things to use the TMS module from a shared volume so you can update it outside of docker without needing to rebuild the image.
Hi,
Thanks for your input, it looks like the root of the issue was my installs.py file for installing extensions was improperly installing the requisite extensions.
I could find them under installed extensions but the nodes and widgets were not accessible. I am attempting a new version which is building from source based on the rosmed ISMR2024 tutorial container rosmed/docker-ubuntu-22.04-ros2-slicerros2-lw:ismr2024
It looks like it was a mish-mash of my python script failing to import all of the extensions (but still appearing as installed in the extension manager), not having slicer built from source so manually building extensions didn’t work and environment variables set at the docker compose level not making it through to the python code.