4 ms·
It's a better solution for dependency management specifically. I need to go to bed so I can't go in too much depth, but here's a high-level summary: - Nix pack
by tikhonj 5y ago
It's a better solution for dependency management specifically. I need to go to bed so I can't go in too much depth, but here's a high-level summary:
- Nix packages can compose in arbitrary ways, containers can't
- Nix can get much more consistent and granular caching
- once an image is built it's reproducible, but the Dockerfile to run it probably isn't—unless it was written very, very carefully to pin everything—so what happens if you need to update one or two packages in an image?
- not 100% sure here, but it seems that lightweight sandboxing like Nix shells or virtualenvs are a lot more convenient for local development and tooling integration
That said, containers might make more sense for, say, deploying and sandboxing services—that's just a different problem from reproducibly managing dependencies and development environments. Nix can build container images, which lets you get the best of both worlds.