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?
Buildah can work with standard Dockerfiles, but it can also do a lot more. For example, you can mount the container filesystem, modify it (say using make), then use those updates as a new layer.
Why NIH instead of simply adopting the already supported Dockerfile syntax of doing the same thing?
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.
This is one of my biggest beefs with many containerization sales pitches...
Oh, no. Another slightly different format? :/
This doesn't, so it's an option for other settings.