The TL;DR version: You can get pretty far with just bash, Git and a Dockerfile.
You have to start somewhere
As anyone working at a startup will tell you, it is critical to focus on what really matters: creating the right product at the right time that customers find great value in. This means that while you need to have a vision for the company, the long-term business and engineering execution has to be incredibly flexible.
For the engineering team, this means plotting an indirect path from nothing towards where we want to end up, while making critical trade-offs along the way. We believe in automated and complete development and tool chains (pull requests, continuous integration, artifact repositories, automated deployments and rollbacks, etc…), but very early on we had to triage our DevOps must-haves and nice-to-haves.
This post details our initial approach to building Java-based Docker services with nothing else than Git and a Dockerfile. Building refers to going from a Git repository to a Docker image ready to be pushed and deployed.