-
Notifications
You must be signed in to change notification settings - Fork 0
Dockerizing fastBMA a step by step tutorial
Welcome to the fastBMAdemo wiki!
##Dockerizing fastBMA - a hands-on tutorial##
###Summary# This tutorial was meant to introduce the process of building a Dockerfile to containerize a GitHub project. It is aimed at an audience with little or no GitHub or Docker experience and was originally used in a graduate bioinformatics seminar course at the University of Washington Tacoma. The tutorial will go through a real-life example, starting with a package, fastBMA, which has somewhat complex dependencies, and was originally developed on Fedora. The container will start with an Ubuntu distro. We will download the starting repository, attach the directory to our docker container, update the directory with the necessary dependencies, compile dependencies that are not properly packaged by the distro, modify the Makefile, compile the binary and then generate the final Dockerfile from the history file. ###Start up Docker# Follow the instructions here to start and install Docker ###Clone the fastBMADemo repository# git clone https://github.com/lhhunghimself/fastBMAdemo
This is the software that we are going to Dockerize. The major dependencies are OpenBLAS and boost MPI, both of which are a bit of a pain to install.
###Build the starting Docker Image#
cd fastBMAdemo
ls

If we examine the Docker file...
cat Dockerfile

We will see that this is a pretty simple Dockerfile that just pulls the baseimage. fastBMA requires OpenBLAS and for some reason the version OpenBLAS packaged with Ubuntu does not seem to work well with fastBMA. The ogrise/openblas image has OpenBLAS compiled from source.
Now let's build it docker build Dockerfile fastbmampi
On Linux installations, you need to be the root to do this. You can either change to root by "su root" or preface each of the commands with "sudo". On MacOS and Windows command, when you are logged into a Linux Virtual Machine as root so the "sudo" is unnecessary