Skip to content

Docker Installation

Robert J. Gifford edited this page Sep 30, 2024 · 9 revisions

How Docker-Based GLUE Works

GLUE is packaged into two Docker images:

  • cvrbioinformatics/gluetools-mysql: This image provides the MySQL database which GLUE will use along with some scripts for updating it. A container based on this image will provide GLUE with its persistent database storage, running in the background as a daemon.

  • cvrbioinformatics/gluetools: This image contains the GLUE engine software along with 3rd-party dependencies such as RAxML and MAFFT. Containers based on this image will be run transiently each time a GLUE interactive session is executed.

Steps to Set Up Docker-Based GLUE

1. Install Docker

Make sure you have Docker installed on your machine. Instructions for installing Docker can be found here.

2. Set Up and Start a gluetools-mysql Container.

Pull the cvrbioinformatics/gluetools-mysql image from Docker Hub:

docker pull cvrbioinformatics/gluetools-mysql:latest

Start a container called gluetools-mysql based on this image:

docker run --detach --name gluetools-mysql cvrbioinformatics/gluetools-mysql:latest

3. Set Up and Start a gluetools Container.

Pull the cvrbioinformatics/gluetools image from Docker Hub:

docker pull cvrbioinformatics/gluetools:latest

Start a container called gluetools based on this image, linking it to the gluetools-mysql container

docker run --rm -it --name gluetools --link gluetools-mysql cvrbioinformatics/gluetools:latest

This will start an interactive GLUE session within the new container:

GLUE Version 1.1.113
Copyright (C) 2018 The University of Glasgow
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. For details see
GNU Affero General Public License v3: http://www.gnu.org/licenses/

Mode path: /
Option load-save-path: /opt/gluetools/projects/exampleProject
GLUE>
...

4. Install a Pre-built GLUE Dataset

You can now install a pre-built GLUE dataset in the gluetools-mysql container. While the gluetools-mysql container is running, you can install various pre-built GLUE projects. For example, the latest NCBI-HCV-GLUE project build can be installed using this command:

docker exec gluetools-mysql installGlueProject.sh parvovirus_glue

5. Add a Local Files Container

Optionally, you can add local files to be used in the glue tools container by setting up the working directory. The working directory for the gluetools container defaults to the example project directory. However this can be overridden by adding the following option to the docker run command:

--workdir /opt/gluetools/projects/my_glue_project

Here we are creating a parvovirus folder in the opt/gluetools directory that will be set up as a working directory:

docker run --rm -it --name gluetools --volume /path/to/file/:/opt/parvovirus --workdir /opt/parvovirus --link gluetools-mysql cvrbioinformatics/gluetools:latest 

GLUE Version 1.1.113
Copyright (C) 2015-2020 The University of Glasgow
This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. For details see
GNU Affero General Public License v3: http://www.gnu.org/licenses/

Mode path: /
Option load-save-path: /opt/parvovirus

You may wish to use .gluerc and .glue_history files from the host file system. These files store your GLUE console preferences and command history. You may want to use .gluerc and .glue_history files from the host file system rather than the container file system. To do this, map your home directory using a --volume option in the docker run command:

--volume /home/fred:/home/fred
Clone this wiki locally