This is the Git repo of the Docker image for GLYCAM-Web GEMS/GMML. The Docker image has an already compiled version of GEMS/GMML development branches, which was the current state of those projects/branches at the time of building the image. If you would like to have an image with the latest, see below for some instructions.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Docker - Docker is a computer program that performs operating-system-level virtualization, also known as "containerization".
docker pull glycamweb/gems-gmml
docker run \
-it \
glycamweb/gems-gmml
This command will start a Docker container and give you an interactive shell inside of the container with a working directory of /programs/gems/. As mentioned above, this image comes with a precompiled version of GMML and a Python wrapping for GEMS.
To test everything is compiled correctly, you can run the command:
bash test_installation.bash
docker run \
-it \
-v /path/to/your/gems:/programs/gems/ \
glycamweb/gems-gmml
This command will start a Docker container with your version of GEMS/GMML mounted inside the container at /programs/gems/ and give you an interactive shell inside the container.
Your version of GEMS/GMML are not compiled yet, so you should first run the command:
bash make.sh
This will compile your version of GMML and wrap it into GEMS. This may take a little bit of time, so now is a good time to grab some coffee.
As an example, GlycoProtein Builder is a program developed by Oliver Grant, which uses GMML functionality. In this example, we will use the Docker image to compile GlycoProtein Builder inside the image.
docker run \
-it \
-v /path/to/your/GlycoProteinBuilder:/home/glycam/GlycoProteinBuilder \
-w /home/glycam/GlycoProteinBuilder \
glycamweb/gems-gmml
This command will start a Docker container with the precompiled version of GEMS/GMML in the Docker image with your local version of GlycoProteinBuilder mounted in the container at /home/glycam/GlycoProteinBuilder and give you an interactive shell inside the container with the working directory of /home/glycam/GlycoProteinBuilder. You will then be able to compile GlycoProteinBuilder by running the command make
. See GlycoProteinBuilder's README.md for more.
A list of predefined ENV variables in the Docker image. See https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file for how to define them.
Default value for GEMSHOME
is /programs/gems/. This environment variable represents the location of your GEMS directory. Generally, there is no need to change this variable, but you can if you find a need to. For example, if you wanted to mount your local version of GEMS/GMML, but didn't want to override the version in /programs/gems/ and you want to use your local version in the Docker image.
Default value for PYTHON_HOME
is /usr/local/include/python3.5m. This environment variable represents the location of the the header files for Python in the image. Generally, there is no need to change this variable, but you can if you find a need to.
Defaule value for GEMSMAKEPROCS
is 4. This environment variable represents the number of processes used for compiling GEMS/GMML when using the make.sh script in GEMS. If you are compiling GEMS/GMML inside the container and not using the precompiled version, then you may find it useful to change this environment variable.
This image has been tested on Ubuntu and Debian machines. Since it is using Docker, there is little reason to think it wouldn't work for Docker on Mac or Windows, but if you find otherwise, please submit an issue.