So I have a problem with docker and how a large majority of containers are built and operate, and its kind of about stuff like this
<a href="https://github.com/jfrazelle/dockerfiles/blob/master/awscli/Dockerfile" rel="nofollow">https://github.com/jfrazelle/dockerfiles/blob/master/awscli/...</a>
Versions of pip packages arnt specified, and its basically a shell script with no error handling.<p>I reality I feel like most dockerfiles, and entrypoint scripts just turn into big shell scripts, that do crazy stuff. Mostly way worse than this, with sed'ding config files, and all kind of things. A bit like this
<a href="https://github.com/pokle/cassandra/blob/master/cassandra/src/start.sh" rel="nofollow">https://github.com/pokle/cassandra/blob/master/cassandra/src...</a><p>In reality I think docker is great for 12 factor stateless services, where you want process isolation and resource constraints. However, shoe horning things into docker containers gets complex, confusing, inflexible, unstable and often dangerous.<p>I feel like configuration management did what these dockerfiles and entrypoint scripts did for years, but now its deemed to complex, or confusing, so people have picked docker, and in effect reverted back to shell scripts? I am waiting for someone to come up with a viable solution to CM with docker I guess, or justify why we should run everything in docker, because so far its obvious you shouldent. This repo is fine if your using it in development, I use this stuff for exactly that. But, if dev != prod thats bad, and I am still not sure how to solve that without lots of battle tested CM in a VM, all the way to IaaS.