Intro to Docker, React, and Security
gooddebate.org
gooddebate.org
I think this is a perfect example of how not to write a tutorial. It doesn't actually teach anything - instead it is effectively a set of commands that someone should type in exactly and it will work.. hopefully.
I think this point in the introduction sums up this approach:
I’d like to point out that the broken branch wasn’t working for some (still) unknown reason related to versioning between when we set up the system and when we upgraded some of the components including nodejs.
and later:
Note for the app we created we used nodejs v8.10.0 and npm v6.4.0, although installing newer versions shouldn’t be an issue.
So.. they don't know why it broke, but any newer version should be fine.
We’re running such a setup in production; a sample Dockerfile can be found on https://github.com/WISVCH/docker-nginx.
But regarding sending static files, nginx uses Linux' sendFile[0] which outperforms anything in user-space.
Up until a few years ago this wasn't something Node could use. I'm not sure if still that's the case though. My information could be badly outdated.
From a general usability standpoint, a Node.js container with all build dependencies will surely turn into a bloated several hundred megabyte Docker image — an Nginx image with just the built static files is a lot smaller.
That being said, the Node.js ecosystem feels more immature than Python’s. The common practice of using microdependencies means that an average project has countless dependencies with varying levels of support — it’s all but impossible to make sure every one of those dependencies is properly maintained.
The framework/library churn rate seems to have decreased though, so that’s certainly good from a security standpoint as well.