13 June 2016

Preparations

Note: If you are on Linux, you can skip the first three steps, since you can run docker directly instead of inside a Virtual Machine

  1. Install VirtualBox on your laptop to get a contained environment for the workshops hackathon materials
  2. Inside the VirtualBox, install Linux Mint (http://distrowatch.com/table.php?distribution=mint), give it say 4 G RAM and 20 G disk
  3. Now log in to this VM and complete the rest of the preparations below inside there.
  4. Inside this VM, install docker using instructions at https://docs.docker.com/linux/step_one/ - follow instructions all the way up to step 4 (at least)
  5. Install docker-compose, start at https://docs.docker.com/engine/installation/linux/ubuntulinux/ (Mint is using ubuntu packages)
  6. Install make (sudo apt-get install make) and git (sudo apt-get install git)
  7. Create a “repos” directory and use git clone (for example git clone https://github.com/Inkimar/dw-media.git) to get the reference materials for various modules onto the laptop so you can run them there…
  8. In most cases, you should be able to start the apps locally now, by doing “cd dw-media” and “make” (in the case where there are Makefiles)

If you can run the apps, you have everything in order, if not, please troubleshoot until you have it working.

Good Tutorial providing sample Docker application

For learning more about docker and deploying distributed polyglot apps (ie apps that combine various technologies like JavaScript, Java and Python apps in one system, much like DINA-Web does), please check out this official Docker tutorial: https://github.com/docker/docker-birthday-3 It is good to have had a look at this material.

Advanced Docker topics

More advanced training materials are available from Docker’s own training guru at: http://view.dckr.info. It contains useful information about “Docker Orchestration” and tools such as the build-tag-push.py command-line tool at https://github.com/jpetazzo/orchestration-workshop/blob/master/bin/build-tag-push.py.

Think about challenges

Please also think about functionality that might be good to break out and isolate from existing applications or systems in order to be able to work with smaller, independent units with the intent to facilitate reuse, portability and ability to work in parallell.

An example:

  • How can the seqdb or the taxonomy module support SSO and user permissions stored in KeyCloak?