Plato Taverna Docker Image
The planning tool Plato is a decision support tool that implements a solid preservation planning process and integrates services for content characterisation, preservation action and automatic object comparison in a service-oriented architecture to provide maximum support for preservation planning endeavours.
Preservation action, characterisation and quality assurance services can be based on SCAPE Components. These annotated Taverna workflows provide a uniform interface for Plato to combine and execute SCAPE Components for planning experiments and to create an Executable Plan as part of the Preservation Plan. Taverna allows calling external tools and services, scripts and other useful functions and combine them in a graphical interface in the Taverna Workbench. Plato uses the Taverna Command Line Tool to execute preservation experiments.
To isolate experiments from the host and each other Taverna can be executed in a Docker container. This repository contains a Dockerfile for a container with Taverna Command Line and SCAPE Components to execute preservation experiments in Plato.
docker pull datascience/plato-taverna-docker:latest
Alternatively you can build the image locally using
docker build --tag="$USER/gitlab" .
--no-cache to avoid hitting docker's cache when rebuilding the image. This ensures that the image is built from the newest version of the base image and that the newest versions of the components are installed.
Running the image
To execute the image run
docker run --rm datascience/plato-taverna-docker:latest executeworkflow [parameters]
This runs Taverna's executeworkflow binary in the container just like the local Taverna Command Line Tool. To simplify this, you can add a wrapper script to your path.
Taverna is executed as user
taverna with UID
2000 and group
taverna with GID
Folders can be mounted into the container as volumes to provide access to files on the host. Since docker shares file UIDs/GIDs with the host, make sure that a user with UID
2000 and GID
2000 has access to relevant files.
docker run --rm -v /tmp:/tmp -v /home/taverna:/home/taverna datascience/plato-taverna-docker:latest executeworkflow [parameters]
To gain interactive access to the image, run
/bin/bash in an interactive docker container
docker run --rm -i -t datascience/plato-taverna-docker:latest /bin/bash
You can get root access by overriding the user set in the Dockerfile
docker run --rm -i -t -u root datascience/plato-taverna-docker:latest /bin/bash
Running as normal user
Docker requires root access to run a container. If your distribution supports
sudo you can avoid entering a password by explicitely allowing
docker run with this image and predefined parameters without a password. To allow members of the group
plato-taverna-docker running the container without password create a file
visudo -f /etc/sudoers.d/plato-taverna-docker
and add the following line
%plato-taverna-docker ALL=(root) NOPASSWD: /usr/bin/docker run --rm datascience/plato-taverna-docker\:latest executeworkflow *