Dockerizing OMERO

11th Annual OME Meeting

Dundee 2016

Ola Tarkowska, Josh Moore, Sebastien Besson, Simon Li

The story of a new file format:

  • Image: OMERO 5.2.3 is out! Release notes say I can now be imported to OMERO! Server, could you upgrade?
  • Server: OMERO requires CentOS 7. Image you have to find a new server as I cannot help you. I am not aware of available hardware to install OMERO for you. Sorry ¯\_(ツ)_/¯
  • Docker: Hey Server! You don't need standalone machine. Did you hear about Docker? Try me!
  • Server: Thanks Docker. Fantastic idea! It is so easy to set up the environment. Image, the latest OMERO is now running. I am importing you...
  • Image: Hurray! I am in. I love OMERO.

Presentation Outline

  • OMERO, Docker containers and Future.

What are Docker containers?


Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.[1]


VM vs Docker

Why OMERO needs docker?

Software as a Service (SaaS)

  • Allows delivering new features without breaking development process.
  • Simplify deployment on wide range of platforms and testing new packages.
  • Helps with scalability and performance.

Current status

We are dockertizing and developing!

From Continuous Integration to Continues Delivery pipeline.


$ docker ps
CONTEINER                 COMMAND              PORTS                                              NAMES
develop_nginx             "/tmp/">80/tcp, 22/tcp,>443/tcp   develop_nginx_1
develop_web               "/tmp/"        22/tcp, 4080/tcp                                   develop_web_1
develop_testintegration   "/tmp/"        22/tcp,>14063-14064/tcp       develop_testintegration_1
develop_omero             "/tmp/"        22/tcp,>4063-4064/tcp           develop_omero_1
develop_jenkins           "/bin/tini -- /usr"  8080/tcp, 50000/tcp                                develop_jenkins_1
postgres                  "/docker-entrypoin"  5432/tcp                                           develop_pg_1
redis                     "docker-entrypoint"  6379/tcp                                           develop_redis_1
selenium/node-chrome      "/opt/bin/entry_po"                                                     develop_seleniumchrome_1
selenium/node-firefox     "/opt/bin/entry_po"                                                     develop_seleniumfirefox_1
selenium/hub              "/opt/bin/entry_po">4444/tcp                             develop_seleniumhub_1

Future work

  • Production docker containers available on Docker hub
  • Questions ???

Thank you

  • Prof. Jason Swedlow
  • OME team