Project Template using Docker and Docker-Compose

Problem: Our system is composed of many different services. With so many applications that uses so many different technologies, we needed a way for any new developer to pick up and work on any one of our applications with little to no additional spin up time.

Solution: Leveraging docker and docker-compose, our project’s many applications can be bootstrapped, developed, tested, and deployed by any new developer because each task uses the same familiar entry. The common dependency between all of our technologies (ruby, python, nodeJS, shell, and others) is the shell terminal so, hence, we opted to use shell scripts as the common entry points. All of our shell scripts are in Linux because we deploy to Linux, but I would think using Window containers with powershell would solve the same problems.

Between these shell scripts and Dockerfile and docker-compose.yml, we ended up formulating a “template” for each of our applications. Hopefully, this template is something that others might find useful or others can help improve upon it so spinning up new applications does not mean reinventing the wheel each time.

Here’s the template:

I’ll explain more about the thought process that guided this template in this separate post: