I hear you, it's nice to run on a platform that understands how to execute your entrypoint to start your program. Docker helps ensure more than that though.
How do your dependencies get installed? What happens if you depend on something in your package.json that isn't on the public npm repo? What happens if you need to compile some native code as part of one of your dependencies?
Do you need to depend on anything provided by the OS? Timezone data? Maybe you use sqlite as a storage backend and want to ship your database file as well. How do you include configuration data?
Docker drastically simplifies packaging and deployment, and gives you a ton of flexibility in where and how you run your code.
Agreed, if you have a complex project Docker helps standardize it. But if you have A LOT of simple projects where none of your points apply, then it actually makes it all more complex.
How do your dependencies get installed? What happens if you depend on something in your package.json that isn't on the public npm repo? What happens if you need to compile some native code as part of one of your dependencies?
Do you need to depend on anything provided by the OS? Timezone data? Maybe you use sqlite as a storage backend and want to ship your database file as well. How do you include configuration data?
Docker drastically simplifies packaging and deployment, and gives you a ton of flexibility in where and how you run your code.