Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To me one of the most valuable parts of docker is almost never mentioned. The fact that a Dockerfile exactly describes the steps necessary to get from a fresh OS image to a working instance of whatever you're containerizing is one of the main selling points.

To me that's what other technologies like rkt seem to miss or at least choose not to focus on.



They describe how to do it in an impure non-reproducible way.

They're not much different from nix expressions, or brew formulas or such.

Unlike nix expressions (or rpm specfiles or various other technologies), the dockerfile format never concerned itself with clearly defining the hashes of inputs and dependencies, reproducibility, working without network access on build farms, etc etc,

Sure, it ended up being popular and usable, but at the cost of taking the art of describing how software is installed back in time.


It's interesting how the people who "do things correctly" and the people who "do things usably" almost never are the same people.

Could it be that these things are mutually exclusive?

Anecdotally, I've tried to learn Nix for several years. I learned to write Dockerfiles in hours.


It's not a coincidence that most Docker containers are built using Debian- or Red Hat-derived images. It's because they have proper packaging systems which are consistently applied, which is what allows them to build and maintain 10s of thousands of projects in a reusable format. The intersection of "correct" and "usable" substantially overlap; certainly much more so than "incorrect" and "usable".

Don't confuse expedience with usability.


> Anecdotally, I've tried to learn Nix for several years.

Out of interest, what did you find difficult? I ask because I spent last weekend setting up NixOS, and the only things I found difficult were discoverability and documentation (I spent a lot of time just reading through the source code).

Edit: Thinking about it it's very possible that this is just a case of me not knowing what I don't know, since I'm not currently trying to do anything particularly complex.


Not sure if this is exactly what you meant by discoverability, but this page helps with at least seeing what configuration options are available: https://nixos.org/nixos/options.html# -- no other distro has anything similar as far as I know.

The language is not too bad, but how it should be used is the missing part. Like a cookbook or a properly populated Stack Overflow site.

When I was on Linux, I liked to distro hop few times a year. Whenever I got back to NixOS, I felt that I had to relearn everything, and that there was nothing to grasp on to. I always take that as a bad smell.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: