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.
Pull the image from the Plato Taverna Docker index. The image is build automatically from the Plato Taverna Docker GitHub repository.
docker pull datascience/plato-taverna-docker:latest
Alternatively you can build the image locally using
docker build --tag="$USER/gitlab" .
Use --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.
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 2000
.
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
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 /etc/sudoers.d/plato-taverna-docker
using
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 *