Earthly combines the familiarity of Makefiles with the reproducibility of Docker to create a portable, cacheable build system. Understanding Earthfile syntax, the LOCALLY keyword, target references, and Satellites unlocks reproducible builds across local and CI environments.
0 / 5 completed
1 / 5
What is an Earthfile, and what language does it use?
An Earthfile uses Earthly's own syntax — a mix of Dockerfile commands (FROM, RUN, COPY) and Makefile-style target declarations. Each target starts with a name followed by a colon and contains a sequence of build steps.
2 / 5
What does the LOCALLY keyword in an Earthfile target do?
LOCALLY instructs Earthly to execute the target's commands on the host machine without a container. This is useful for tasks that need to write to the local filesystem (e.g., updating generated files) or interact with local tools not available inside containers.
3 / 5
In an Earthfile, COPY +build/app . copies an artifact from the +build target. What does the + prefix signify?
The + prefix is Earthly's convention for referencing build targets. +build means the target named build in the same Earthfile. Cross-project references look like github.com/org/repo+target, enabling artifact sharing across repositories.
4 / 5
Earthly claims reproducible builds. What specifically makes an Earthly build more reproducible than a plain shell script?
Earthly runs each target inside a container starting from a declared FROM image. This isolates the build from host tool versions and state, making the build produce the same output regardless of which developer or CI machine runs it — unlike scripts that rely on whatever is installed locally.
5 / 5
What is an Earthly Satellite?
An Earthly Satellite is a cloud-hosted build runner (provided by Earthly) that executes builds remotely. It maintains a persistent, shared cache accessible by all team members, dramatically speeding up builds compared to starting with a cold cache on each developer's machine or ephemeral CI runner.