buildkit
with some Earthly-specific setup. This is what Earthly will start when using a local daemon. You can also start it up yourself and use it as a remote/shared BuildKit daemon.earthly
. Mismatched versions are unsupported.prerelase
v0.6.21
, latest
v0.6.20
v0.6.19
docker run
commands that cover the most common use-cases:--privileged
is required. This is because earthly
needs some privileged buildkit
functionality.-t
tells Docker to emulate a TTY. This makes the buildkit
log output colorized.-v earthly-tmp:/tmp/earthly:rw
mounts (and creates, if necessary) the earthly-tmp
Docker volume into the containers /tmp/earthly
. This is used as a temporary/working directory for buildkitd
during builds.buildkitd
by setting EARTHLY_BUILDKIT_HOST=docker-container://<container-name>
, or by specifying the appropriate values in config.yml
.-e BUILDKIT_TCP_TRANSPORT_ENABLED=true
makes buildkitd
listen on a TCP port instead of a Unix socket.-p 8372:8372
forwards the hosts port 8372 to the containers port 8372. When using TCP, buildkit
will always listen on 8372, but you can configure the apparent port by forwarding a different port on your host.fast-builder
, you could use this remote buildkitd
by setting EARTHLY_BUILDKIT_HOST=tcp://fast-builder:8372
, or by specifying the address in your config.yml
.buildkitd
needs appropriate access to start and run additional containers itself via runc
./tmp/earthly
/tmp/earthly
. If you do not, buildkitd
can consume excessive disk space, operate very slowly, or it might not function correctly./tmp/earthly
as a Docker volume results in the following error:earthly
, please note that setting EARTHLY_BUILDKIT_HOST
values with hosts 127.0.0.1
, ::1/128
, or localhost
are considered local and will result in Earthly attempting to manage the BuildKit container itself. Consider using your hostname, or another alternative name in these cases.buildkitd
config to append to the generated configuration file.true
when the buildkitd
instance is going to be used remotelytrue
when the buildkittd
instance will require mTLS from the clients. You will also need to mount certificates into the right place (/etc/*.pem
).ip route show | grep default | cut -d' ' -f5 | head -n 1
false
/tmp/earthly
before running, if set to true
. Useful when you host-mount an temporary directory across runs.cni
buildkitd
. Default uses a CNI bridge network, configured with the CNI_MTU
.0
buildkitd
cache be allowed to get, in MiB? 0 is unbounded.git config --global url.<url>.insteadOf
rules used by buildkitd
iptables_nft
or iptables_legacy
) is used for configuring ip_tables
. Only set this if autodetection fails for your platform.