Transparent Docker

Rivanna A

Keeping your environments in sync has been a challenge for software development for a long time. Developers tend to install their own versions of languages, databases, services, etc. Doing so manually results in not only inconsistencies between dev and prod, but also from developer to developer, resulting in the always wonderful “It works on my machine” syndrome.

Various tools have strived to solve this problem: MAMP, XAMP, VirtualBox, Vagrant, Puppet, Chef, homestead, etc. These are all steps in the right direction, but they’re often heavy and require developers to learn new skills to work with them.

In this talk, I’ll be showing you how to Dockerize a new or existing project in such a way that the developers using the project barely even know they are using Docker. Getting a new dev up to speed on a new project with a factory fresh machine is literally just a matter of installing Docker and checkout out the source code. That’s it!

Some of the benefits you’ll see from using this approach:

  • Onboard new devs in minutes
  • Have projects with unique (often incompatible) dependencies on a single machine
  • Dockerized environment that acts like natively installed tools
  • Version locking of the tech stack
  • Updates to dependencies automatically distributed to other developers
  • Easily extended into CI/CD