
Docker works; until it doesn't. Why I started using Nix for dev environments
It's Monday morning. A new engineer joins the team. By Thursday, they're still fighting their dev environment. The Dockerfile the previous engineer wrote pulls from ubuntu:22.04 , runs apt-get install without pinned versions, and "works on the CI runner." On the new engineer's M2 Mac it builds fine but the binary crashes at runtime because they're running a different glibc. You've seen this. We all have. The thing is: Docker was supposed to fix this. It didn't. It just moved the problem. Not in production -- in development environments. The Problem with Dev Environments Dev environments fail in predictable ways: Dependency drift : your local toolchain diverges from CI over weeks. Nobody notices until a build breaks in production but passes locally. Version manager sprawl : nvm , pyenv , rbenv , sdkman -- one per language, none of them talk to each other, all of them break on OS upgrades. Platform gaps : macOS developers running Linux containers via a VM, dealing with volume mount perfo
Continue reading on Dev.to DevOps
Opens in a new tab




