Developers are still humans and forcing them into a direction they don't want to go does not benefit anyone and makes working as a team harder.
Not trying to sound like a douche but to me that seems super counter-intuitive. Developers are developers and some decisions are made at the team level and some things have to be enforced. Be it the development environment, build system, commit messages, bug reports, editor configs, git flow, etc... People can chose their environment (OS, code editor, browser of choice), but regarding the project things must be 100% transparent. When people start to do their own thing, it leads to friction and time loss in my experience.
Docker is indeed the perfect fit for this scenario. It helps with continuity as well as team scale. When a new dev comes along, he just has to run git pull
/ npm install
/ docker-compose up
and he should be ready to go. Now I know I'm basically echoing what others have said before me, but I'm surprised it didn't bite your team once or twice. Also, if people run their own environment, why don't they just ignore the docker-compose file? In the end, to them, it's just a useless config file?