Hacker News new | ask | show | jobs
by takeda 2864 days ago
IMO docker is a dead end, it essentially ended up being a glorified ZIP file, the real solution what docker was trying to do (reproducibility) is what Nix does, and if Nix is not a solution then something in that direction.

In nix, you're basically describing the whole dependency tree of your application all the way to libc. When you build your application it builds everything necessary to run it.

The great thing about it is that your CDE essentially is identical to your build system, and the builds are fully reproducible, it takes over being a build system, package manager and as mentioned CDE.

They went even further with that (I have not explored that myself yet) and used the language to describe the entire system (called NixOS) which looks like CMS is no longer necessary and also nix is used for deployment (NixOps, also did not tried it)

If you are into containers you can still deploy into systemd lxc containers, or even create a minimalistic docker image.

The disadvantage is that there is a significant learning curve, it's a new language, and it is a functional, lazily evaluated language. The language is not really that hard, but many people are not used to functional programming. It is especially popular for deployment of Haskell code, since the language is also functional and lazily evaluated.