Motivation
Each example app (echo, hello-world, sana-streaming) is currently built locally via build: . in its docker-compose.yml. To run an app on an orchestrator, the operator has to build the image themselves (clone the repo, have the toolchain, docker compose up --build).
Publishing prebuilt images would let orchestrators pull them directly — faster, reproducible, and no local build step or source checkout required.
Proposal
Add a GitHub Actions workflow that builds each app's Dockerfile and pushes a tagged image to a registry (GHCR, e.g. ghcr.io/livepeer/live-runner-example-apps/<app>).
- One image per app —
echo, hello-world, sana-streaming — via a build matrix.
- Use
docker/build-push-action + docker/login-action (GHCR token).
- Tags:
latest, git SHA, and release tag.
- Trigger on push to
main and on tags/releases (decide which).
- Update each app's
docker-compose.yml to reference the published image:, keeping build: as a local-dev fallback so the existing workflow still works.
Open questions
- Registry: GHCR vs Docker Hub.
- Triggers: push to
main, tags, releases, or a combination.
- Multi-arch: is
arm64 needed, or amd64-only (orchestrators are typically amd64 GPU hosts)?
- vllm: has no
Dockerfile (uses an upstream image) — exclude from the matrix or document separately.
Outcome
Orchestrators can docker pull ghcr.io/livepeer/live-runner-example-apps/hello-world (and the others) and run them without building from source.
Motivation
Each example app (
echo,hello-world,sana-streaming) is currently built locally viabuild: .in itsdocker-compose.yml. To run an app on an orchestrator, the operator has to build the image themselves (clone the repo, have the toolchain,docker compose up --build).Publishing prebuilt images would let orchestrators pull them directly — faster, reproducible, and no local build step or source checkout required.
Proposal
Add a GitHub Actions workflow that builds each app's
Dockerfileand pushes a tagged image to a registry (GHCR, e.g.ghcr.io/livepeer/live-runner-example-apps/<app>).echo,hello-world,sana-streaming— via a build matrix.docker/build-push-action+docker/login-action(GHCR token).latest, git SHA, and release tag.mainand on tags/releases (decide which).docker-compose.ymlto reference the publishedimage:, keepingbuild:as a local-dev fallback so the existing workflow still works.Open questions
main, tags, releases, or a combination.arm64needed, oramd64-only (orchestrators are typically amd64 GPU hosts)?Dockerfile(uses an upstream image) — exclude from the matrix or document separately.Outcome
Orchestrators can
docker pull ghcr.io/livepeer/live-runner-example-apps/hello-world(and the others) and run them without building from source.