3 ms·
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
by antoncohen 6y ago
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.
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?
- riedel 6y agoExcept all the nice things from makefiles like actual rules are missing in this one. There must be a better way to do this. Isn't there a tool to actually incrementally build container layers in the normal file system that works with the real make or any other build system?
- wwright 6y agoBazel has a set of rules to do this AFAICT. The OCI format isn’t particularly complex, so it’s probably not hard to build something into Make or CMake or so on. (IMO Bazel has some of the best tools for abstraction and reuse in a build system, so it makes even more sense there.)
- cpitman 6y agoThat sounds like Buildah (https://github.com/containers/buildah/blob/master/README.md https://github.com/containers/buildah/blob/master/README.md). 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.