| ▲ | professor_v 3 hours ago | |||||||
I just use docker and I don't feel I'm missing anything? | ||||||||
| ▲ | fer an hour ago | parent | next [-] | |||||||
nix develop ensures your dev env is the same as your build/test/prod env. At least with Python everything is a flurry of requirements.txt, Python versions, poetry, pyproject.toml, perhaps automated with direnvs, a hefty Dockerfile/docker-compose, and perhaps conda (ugh) along the way; lots of moving parts. I have a project that's mostly Rust sprinkled with C++ libs and Python helpers and it's easier to manage than the average virtualenv. Everything builds with nix build, everything runs with nix run, profiler/debugger works, IDE detects everything on any of my computers, builds and links with CUDA on x86, aarch64, NixOS, MacOS, Ubuntu or Amazon Linux. nix build can even build a Docker image for the odd need of Docker, and I haven't tried but I'm convinced that if I import the flake on my nix-config it will be built into the SD card for my Raspberry Pi just fine. It's even replaced Ansible for me, colmena all the way. | ||||||||
| ▲ | sshine 2 hours ago | parent | prev [-] | |||||||
Docker's ability to mount host directories in the container is really nice. Maybe you have some premade tooling that helps provide persistency between container invocations. But by default, closing your agent container and opening it again just wipes everything you didn't host-mount. What I'm advocating is really just the same functionality without the Docker runtime, because Linux has namespaces. Feels more like you're on your host system with exactly the minor variations you specify. Making Docker feel like your host system is possible, but I just never felt at home. | ||||||||
| ||||||||