footstone holds the container images the Eru project builds and runs code in: a build image that
carries the Go toolchain together with fpm, rpm and dpkg for producing distribution packages,
and a run-lambda image that gives Eru lambda workloads an unprivileged user with passwordless
sudo. One directory per image, one Dockerfile each, all published to GHCR for linux/amd64 and
linux/arm64.
Documentation: projecteru2.github.io/footstone (source in docs/).
| Image | Base | Contents |
|---|---|---|
ghcr.io/projecteru2/footstone/build |
golang:1.27-alpine |
Go 1.27, fpm, rpm, dpkg, git, alpine-sdk, libgit2-dev |
ghcr.io/projecteru2/footstone/run-lambda |
alpine:3.22 |
sudo, plus a lambda user (uid 65530) with passwordless sudo |
Every image is tagged latest on a master push, with the commit sha, and with the tag name on a
v* tag.
Build an Eru component inside the build image:
docker run --rm -v "$PWD:/src" -w /src \
ghcr.io/projecteru2/footstone/build \
go build -o eru-core .Use the lambda base for a workload image:
FROM ghcr.io/projecteru2/footstone/run-lambda
USER lambda- core — stateless gRPC resource scheduler
- agent — per-node daemon reporting node and workload status
- cli — command line client for the core API
- resource-extend — external resource plugins (gpu, storage)
- quickstart — Ansible playbook that deploys an Eru cluster
make check # run the Dockerfile linter on every image
make build # build every image for the local platform
make push # build and push every image for linux/amd64,linux/arm64
make all # check, then buildmake help lists every target. REGISTRY, IMAGES, PLATFORMS and TAG override the defaults,
for example make push TAG=v1.0.0 IMAGES=run-lambda.
This project is licensed under the MIT License. See LICENSE.