I've been meaning to learn nix. It seems like it would be great for this. I can't recommend it since I haven't used it extensively, but it may be worth looking into. If you want reproducible builds (as in, identical binaries each time you build), it's supposed to be great for that.
I'm a fan of docker-compose, but somehow it fails the "it just works" test every time I use it for dev env purposes