Containing chaos



I was escaping for some good time. But I needed to write a docker-compose.yml at last1. It wasn’t too complicated since it consisted of one DB and one web server which has a Django app on it.

And I have to say: I wanted to wash my hands afterwards. I really don’t like what is going on there.

Amount of freedom is too much

You can do whatever you want. Will you declare necessary commands on the Dockerfile? Cool. Or you don’t care that much about caching and you will pile some stuff under “entrypoint” script? Also cool. What will you call on these files? Which repositories will you use? Which (old) distros and (even older) libraries you’ll call? Error catching? Yeah you will also handle it however you like. Ignore them with some || true’s, would you?

This is just asking for problems in my opinion. As long as more than 1 person involved maintaining such stuff, there will be issues.

Reproducible? LOL 😆

Seriously, don’t even evaluate the meaning of the word “reproducible”, if you ever gazed upon a sane configuration management system in your life. Here be dragons, nothing is guaranteed. Did you pin the package version you used? What happens if upstream repository removes that version? Oh you’re using your own repositories? Cool. That’s “one” problem you’ve solved. Now let’s continue with million others which will generate different environments and nice-to-dig bugs at the end.

Maybe fiddling to much with Nix ecosystem and working with Puppet in last few years spoiled me too much (I don’t do ad-hoc configuration changes anymore). But the container technology is still not nearly where I’d wish it is. At least on the configuration side. I’m planning to dive into the orchestration (k8s) just to check if my suspicions are correct or not.

  1. At least for someone else to use it ↩︎