Pytech Resources

Docker an overkill for the solo developer?

Oct 16, 2024

Posted by:

Docker may not be a fit for everyone

If you are a full-stack web developer working on your own, Docker is probably an overkill. Docker is great for those working in teams for many known reasons that I need not go into. But if are working alone, it adds a layer of complexity that you don't really need. Developing a website can be a complex and challenging task as it already is.

I have been teaching Python since 2006 and also developed some websites using Django. One of the websites that I originally developed some twenty years is adestiny.com . This is a rather complex website which can dynamically generate various pdf reports of up to 25 pages with graphs and charts for reading a person's Bazi (Chinese astrology). The other website is this training website Pytech Resources which uses Wagtail, a very popular Django CMS.

So I decided to redevelop these two websites using Django, Gunicorn, Nginx and Docker, having read about the benefits of using Docker. The two websites are hosted on the same vps with one ip address.

Some of the disadvantages of working with Docker in the context of a solo developer are :

  • Increased complexity. Using Docker adds extra layers to your workflow such as
    • managing Dockerfiles
    • Docker compose confifurations
    • understanding container networking
  • Learning curve. It requires some time to learn Docker's set of commands and concepts (such as images, containers, volumes, networks). I work solo and realized that it's not worth the investment since the environment doesn't need containerization.
  • Debugging challenges. I found out that debugging in a containerized environment is harder than debugging on my local machine, especially if dealing with network or environment-specific issues.
  • Performance overheads. Docker may use more system resources, forcing you to upgrade your server and incur extra cost.
  • Unnecessary Layer for Simple Projects. I took Docker out from my setup and found that the local setup was simpler and faster. In my case, there was no need to replicate production environments exactly.
  • Limited Benefits without Team or Scaling Needs. Docker’s strengths shine when working with teams or scaling applications, as it allows consistent environments across machines. For a solo developer working on a single machine, this consistency might not be a strong enough advantage.

That said, Docker can still be useful if you plan to deploy the project in a Dockerized environment or need to match a specific infrastructure setup. On my server I still run a Dockerized environment for my email server. But for my two websites, my move to local installs has resulted in simpler and more efficient work.