A DevOps Approach to Research


In recent years, Docker has become an essential tool for software development. We demonstrate that Docker containers together with the GitLab platform can be a useful tool for researchers too. It enables them to easily catch problematic code, automate analysis workflows, archiving of results, and share their software and its dependencies across platforms. While a Docker image bundles the whole development stack and enables its cross-platform sharing, it is often cumbersome and repetitive to build, run, and deploy an image. GitLab is a software development platform built on top of the Git version control system with built-in support for Docker. Using GitLab’s continuous integration pipelines, most tasks related to managing Docker images can be automated. In addition, utilising tools from software development, we can perform automatic code analysis to identify faulty or problematic code as early as possible. We explain how to setup a Docker-powered project in GitLab and how to automate certain tasks to ease the development workflow:

How to automatically build a new Docker image once a project has been updated.

  1. How to identify faulty and problematic code.
  2. How to use GitLab to automatically run experiments and archive their results.
  3. How to share images with other researchers using GitLab’s Docker registry.

Jun 28, 2017 —
Docker Containers for Reproducible Research Workshop (C4RR)
University of Cambridge
Cambridge, UK
Sebastian Pölsterl
Post-Doctoral Researcher

My research interests include machine learning for time-to-event analysis, non-Euclidean data, and biomedical applications.