from Hacker News

Earthly – Makefile Meets Dockerfile

by scg on 4/18/20, 5:07 PM with 17 comments

  • by antoncohen on 4/18/20, 6:35 PM

    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?

  • by kesor on 4/18/20, 8:13 PM

    That Dockerfile looks exactly like a multi-stage build Dockerfile, just with custom and non-standard syntax.

    Why NIH instead of simply adopting the already supported Dockerfile syntax of doing the same thing?

  • by hartzell on 4/18/20, 8:25 PM

    > But most importantly, all builds are completely reproducible.

    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...

  • by randallsquared on 4/18/20, 6:09 PM

    > A familiar Dockerfile-like syntax is used, [...]

    Oh, no. Another slightly different format? :/

  • by curryhoward on 4/18/20, 10:20 PM

    This looks a lot like Toast: https://github.com/stepchowfun/toast
  • by folmar on 4/18/20, 6:38 PM

    I strive to see a selling feature in comparison to gitlab-ci... Mixing its syntax with docker is only so little.
  • by samsquire on 4/18/20, 6:30 PM

    Dockerfiles in YAML
  • by jlelse on 4/18/20, 7:15 PM

    Looks nice