-
Set permissions on datastore which will hold results of workflows after they run
mkdir workflows && mkdir datastore chmod a+wrx workflows && chmod a+wrx datastore
-
Run container and login with the following (while persisting workflow run directories to datastore)
docker run --rm -h master -t -v `pwd`/datastore:/mnt/datastore -i seqware/seqware_full:1.1.1
-
Run the HelloWorld (sample) workflow with
seqware bundle launch --dir ~/provisioned-bundles/Workflow_Bundle_HelloWorld_1.0-SNAPSHOT_SeqWare_1.1.1/
-
Alternatively, if you need to run a command on the container as a part of a script, you will need to invoke the start script first. As an example, to list the workflows available in the image.
docker run --rm -h master -t -v `pwd`/datastore:/mnt/datastore -i seqware/seqware_full:1.1.1 /start.sh "seqware workflow list"
-
Note that you can also connect the Docker client inside this container to the Docker daemon on the host in order to run Docker containers as part of your workflows. In order to do this add
-v /var/run/docker.sock:/var/run/docker.sock
Additionally, we provide an example workflow that uses docker containers. This workflow has two steps, one that runs a toy command in a centos container and one which runs postgres. First, you need to download and expand the workflow. If you need to install Javasudo apt-get install openjdk-7-jre-headless
is sufficient for this.cd workflows wget https://seqwaremaven.oicr.on.ca/artifactory/seqware-release/com/github/seqware/seqware-distribution/1.1.1/seqware-distribution-1.1.1-full.jar wget https://s3.amazonaws.com/oicr.workflow.bundles/released-bundles/Workflow_Bundle_dockerHelloWorld_1.0-SNAPSHOT_SeqWare_1.1.0-rc.0.zip java -cp seqware-distribution-1.1.1-full.jar net.sourceforge.seqware.pipeline.tools.UnZip --input-zip Workflow_Bundle_dockerHelloWorld_1.0-SNAPSHOT_SeqWare_1.1.0-rc.0.zip --output-dir Workflow_Bundle_dockerHelloWorld_1.0-SNAPSHOT_SeqWare_1.1.0-rc.0 cd ..
-
Next, run the workflow.
docker run --rm -h master -t -v /var/run/docker.sock:/var/run/docker.sock -v `pwd`/datastore:/datastore -v `pwd`/workflows/Workflow_Bundle_dockerHelloWorld_1.0-SNAPSHOT_SeqWare_1.1.0-rc.0:/workflow -i seqware/seqware_full:1.1.1 /start.sh "seqware bundle launch --dir /workflow"
This should start up the container, run the workflow, and then cleanup the container. You can then examine the results in the persistent datastore directory.
-
Assuming docker is installed properly, build image with
docker build -t seqware/seqware_full:1.1.1 .
-
Look on Docker Hub to get the latest pre-production builds. For example, at the current time
docker pull seqware/seqware_full:1.2.0-alpha.0
-
Next, follow the instructions above while substituting the relevant version numbers