Even though simple projects don't necessarily need Docker to work, they are 100 times better off using Docker than doing things by hand, because that alternative means they are only deploying once and never again (updates, new environment, dev/staging/prod) and that's just not true.
Why?
[1] Are you running this in the cloud? On Google? On AWS? Cloud functions? A containerized VM? Maybe you're running it on an old Mac in your basement. If you're deploying on Linux, you're using lots of bash scripts but -- whoopsie -- those won't work on Windows.
I think that's the only thing I'm strongly opinionated about as a developer.
--- EDIT
This is a classic. Reading the backend "how to run" guide I see:
DATABASE=<your-mongodb-connection-string>
PORT=5000
SERVER_URL=http://localhost:5000
This should settle any debate about docker being "overkill". Developers are notoriously reluctant to install things on their dev machines. As-is this repo has non-trivial setup friction which will reduce # of potential users/testers.TL;DR: docker-compose up
Pretending that using Docker is as easy as "docker-compose up" is either disingenuous, or you simply haven't used Docker as much as I have. Either way, I still contend that Dockerfiles have no room in a source code repository.
btw enabling VT-x is required for other tools as well (Android Studio for device emulation).
Dockerfiles are super useful in a source code repository and has saved me a ton of time.
A well written Dockerfile and docker-compose files contain and describe all the dependencies you need and you can copy them to an Ansible playbook or just a script for your choice of OS/environment.
Not with Docker. Docker makes that problem a thing of the past.
Do you know how many billion dollar companies use Docker in production every day with no breaking?
> Why should that preclude me from a simple "yarn run" or whatever? It's insanity.
because your UI backed by an API is really useless without Postgres :)
I get that my opinion is controversial (and, in fact, I use Docker daily and it has a cozy spot on my resume), but keep in mind that you can say this about all kinds of mediocre technologies that have become massively popular.
The only acceptable alternative to Docker, is, IMHO, a makefile. If I open your project and see a Dockerfile, I'm just going to `docker build && docker run`. If I see a makefile, I'm just going to run `make help ; make run || make`. It greatly reduces the cognitive load if I only want to quickly see what the project does.