Docker Installation - giffordlabcvr/Parvovirus-GLUE GitHub Wiki

How Docker-Based GLUE Works

GLUE is packaged into two Docker images:

  • cvrbioinformatics/gluetools-mysql: This image provides the MySQL database that GLUE uses along with scripts for managing it. A container based on this image runs in the background as a daemon, providing persistent database storage.

  • cvrbioinformatics/gluetools: This image contains the GLUE engine software and third-party dependencies like RAxML and MAFFT. Containers based on this image are used for interactive GLUE sessions.


Steps to Install Docker-Based Parvovirus-GLUE

1. Install Docker

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

2. Set Up the gluetools-mysql Container

Pull the gluetools-mysql image:

docker pull cvrbioinformatics/gluetools-mysql:latest

Create and start the gluetools-mysql container:

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

[!NOTE] The container was started in detached mode, and will run in the background as a daemon. This will provide GLUE with its persistent database storage inbetween GLUE sessions.

3. Install the Parvovirus-GLUE Project

Install the pre-built Parvovirus-GLUE dataset into the gluetools-mysql container:

docker exec gluetools-mysql installGlueProject.sh parvovirus_glue

4. Start a GLUE Shell Session

Pull the gluetools image:

docker pull cvrbioinformatics/gluetools:latest

Start a gluetools container and link it to the gluetools-mysql container:

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

You will enter an interactive GLUE shell session:

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>

Hints & Tips

Adjusting Console Log Level

By default, the Docker-based GLUE console operates at the highest verbosity level (FINEST), which provides detailed output for debugging purposes. To adjust the console output to a more typical level, such as INFO, use the following command:

GLUE> console set log-level INFO
OK

This change reduces the amount of information displayed, making the console output more concise and easier to follow during regular usage.


Using a Custom 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

For example, to create a working directory for a parvovirus project:

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

When using this setup, the GLUE shell will use the specified working directory:

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

Using Host File System for Preferences and History

To use .gluerc and .glue_history files from the host file system rather than the container file system, map your home directory using the --volume option in the docker run command:

--volume /home/fred:/home/fred

This setup ensures that your GLUE console preferences and command history persist across sessions.


What Happens When You Shut Down Your Computer?

If your computer is shut down or restarted, the container will stop but the data stored in the container will remain intact. To restart the container after rebooting your computer, run the following command:

docker start gluetools-mysql

This command restarts the container, making the database available again for use with GLUE. Note that this persistence only applies to the container itself, and not to the Docker image. If you remove the container with docker rm, all data stored within it will be lost.