The Tool Manager provides the ability to configure and launch analysis environments, such as RStudio and Jupyter Notebooks, pulling data from repository software such as Clowder. It began as a feature of the TERRA-REF project to provide analysis capabilities in Clowder.
docker build -t ndslabs/toolmanager .
docker run -it -p 8082:8082 ndslabs/toolmanager
The ToolManager itself runs as a Docker-in-Docker container that can spawn other containers. The Docker-in-Docker paradigm was introduced to ensure that any running instances are cleaned up / deleted if the host container goes down. Otherwise, we are left with dangling containers that must be cleaned up / deleted manually.
Two REST API Endpoints provide restricted access to the underlying Docker daemon: /tools and /instances
- GET - Retrieve the list of all available tools
- POST - Add a new tool to the list (not implemented)
- PUT - Modify a tool on the list (not implemented)
- DELETE - Delete a tool from the list (not implemented)
- GET - Retrieve the list of all running instances
- POST - Create and start a new instance of a tool
- PUT - Modify the given running instance (for example, to add another dataset to an existing instance)
- DELETE - Stop and delete the given running instance (not implemented)