Simple Dockerfile examples are often broken by default
I have a mixed opinion about his first point.<p>There are two basic approaches to take with dependency management.<p>The first version is to lock down every dependency as tightly as you can to avoid accidentally breaking something.  Which inevitably leads down the road to everything being locked to something archaic that can't be upgraded easily, and is incompatible with everything else.  But with no idea what will break, or how to upgrade.  I currently work at a company that went down that path and is now suffering for it.<p>The second version is upgrade early, upgrade often.  This will occasionally lead to problems, but they tend to be temporary and easily fixed.  And in the long run, your system will age better.  Google is an excellent example of a company that does this.<p>The post assumes that the first version should be your model.  But having seen both up close and personal, my sympathies actually lie with the second.<p>This is not to say that I'm against reproducible builds.  I'm not.  But if you want to lock down version numbers for a specific release, have an automated tool supply the right ones for you.  And make it trivial to upgrade early, and upgrade often.