Philosophy

I realize a number of docker containers for what I build already exist, I don’t mean to directly undermine projects like LinuxServer.io that do a great job maintaining a large number of applications is a ready-to-go container format.

However, when building out internal infrastructure, I have a number of requirements that I feel are non-negotiable. For some applications I use, no pre-built container existed or it made sense to build a central container image I could use across my fleet of machines.

In order for me to rely on a container in my setup, I want it to have these things:

  • Stable, known versions. For example, a tool like PHP or Hugo should have containers tagged for current major and minor versions. You should be able to opt for a latest version to automatically update, or lock to a fairly specific version should you need to.
  • Regular updates. Containers, even if the software version doesn’t change, should see some sort of regular updates. The container image and libraries need routine updates to ensure security issues and the like are patched.
  • Transparent The container’s source should be public and the build process easy to replicate.
  • A good fit The reason I made most of these is because I didn’t want to bend how I operate to fit a mold of some container that may or may not be a good overall fit.