This essentially looks like a Makefile where the tasks (targets) are run inside Docker containers. That is useful, I've definitely written Makefiles where tasks run in containers, and I wish it was easier.<p>But does this actually replace Bazel? Without language specific rules, like knowledge of dependencies, can it build a full dependency graph? If I have a monorepo with many packages, can Earthly build only what needs to be built, and always build what needs to be built?
That Dockerfile looks exactly like a multi-stage build Dockerfile, just with custom and non-standard syntax.<p>Why NIH instead of simply adopting the already supported Dockerfile syntax of doing the same thing?
> But most importantly, all builds are completely reproducible.<p>This is only true if the commands that the recipe executes are reproducible. If someone's pulling packages from PyPi or C[PR]AN or ... w/out locking the versions, all bets are off.<p>This is one of my biggest beefs with many containerization sales pitches...
This looks a lot like Toast: <a href="https://github.com/stepchowfun/toast" rel="nofollow">https://github.com/stepchowfun/toast</a>