This git repository contains all scripts and links to resources for building a fully featured MaSyMoS Docker image. MaSyMoS is a graph database for SystemsBiology models, developed within the SEMS Project (Repoistories).
This image includes following MaSyMoS modules:
Using the image relatively straight forward. A precompiled version is available on Docker Hub. Simply run:
docker run -it -p 7474:7474 -p 7687:7687 -v /path/to/masymos-data:/data freakybytes/masymos:latest
On the first startup the MaSyMoS image will import several ontologies into the underlaying neo4j database. These are relevant for interlinking models and build better indexes. However this will take quite some time. (~2-4h)
Since this images is based on the official Neo4j Docker image all configuration mechanisms are also applicable to this image.
But keep in mind, that eg. mounting /config
will override the MaSyMoS specific Neo4j config. For an overview of which configuration parameter were changed,
refer to the patches/
directory.
Due to the extensive build process and the related consumtion of disk space for caching, we decided to split the process into two images:
The first one contains a build environment (Dockerfile.build-env
) and the actual container running MaSyMoS (Dockerfiler
). Unfortunetly this
implies, that the image is unsuitable for automated builds on Docker Hub. However to simplify building the image, we're shipping a bash script
automating the steps.
Before cloning this repository please ensure, that you have Git LFS installed, since we use it to store the ontology files in this repository. Then clone the repository with all sub-modules:
git clone --recursive [email protected]:SemsProject/masymos-docker.git
The simplest way to reproducibly build this MaSyMoS image is to run the shipped build script.
./build.sh
Alternatively you may run the steps from build.sh
yourself.
Start by building an image containing the build environment for MaSyMoS:
docker build -f Dockerfile.build-env -t masymos-build-env:latest .
Next let's utilize this environment to actually compile all MaSyMoS modules.
Doing so will run scripts/build_masymos.sh
within the container. However to actually persist
the build result on your hard drive, we need to mount the src
directory as volumne.
docker run --rm -t -v $(pwd)/src/:/root/src/ -e "SRC_DIR=/root/src" masymos-build-env:latest
Finally we can build the actual MaSyMoS image
docker build -f Dockerfile -t freakybytes/masymos:latest .
Congratulations you're now able to use the image!