Skip to content

ci: make ghcr the only target and the published image runnable - #3

Merged
rickstaa merged 3 commits into
mainfrom
rs/ghcr-only
Aug 19, 2026
Merged

ci: make ghcr the only target and the published image runnable#3
rickstaa merged 3 commits into
mainfrom
rs/ghcr-only

Conversation

@rickstaa

@rickstaa rickstaa commented Aug 19, 2026

Copy link
Copy Markdown
Member

Follows runner-app-examples#83: examples are not production containers, so they publish to GHCR and stay out of the Docker Hub product namespace.

Publishing here was already GHCR-first, so this is the rest of that decision.

Docker Hub is no longer a target

build.yml carried an opt-in second target via DOCKERHUB_NAMESPACE plus DOCKERHUB_USERNAME / DOCKERHUB_TOKEN. Docker Hub livepeer/ is a curated product namespace that examples stay out of, so the path is removed rather than left available.

The published image is now runnable

compose.yml built from source and named no image, so nothing could land on ghcr.io/livepeer/streamdiffusion-livepeer-runner without hand-editing. That matters more here than in the examples repo: the image is ~15 GB, so pulling rather than building is the difference between a download and a long local build.

docker compose up -d                 # builds from source, as before
docker compose up -d --pull always   # runs the published image

pull_policy: build is what makes naming the image safe. Compose's default policy fetches a remote-resolvable image when it is missing locally even for a service with a build section, so without it a clean checkout would silently run the published image instead of the contributor's code.

Image conventions

  • stable tag on v* releases, matching the examples' tag scheme, now documented in the README.
  • OCI labels move from Dockerfile LABELs into metadata-action, where the examples declare them. metadata-action passes labels as --label, which beats anything baked into the image, so the LABELs were both redundant and contradicted on licence: they said Apache-2.0 while the generated default said MIT. It now says Apache-2.0 AND MIT, which is what the image actually carries.

Deliberate divergences from the examples, all size-driven: no PR builds, no type=gha layer cache (15 GB would blow the 10 GB Actions cache), and the disk-reclaim step.

Testing

  • docker compose config passes; a clean-state docker compose up -d builds from source and does not attempt a pull, verified by the fact that the package does not exist yet, so a pull would fail loudly.
  • Not yet exercised: --pull always, for the same reason. Worth one manual run after this merges and CI publishes.

rickstaa and others added 3 commits August 19, 2026 12:32
Docker Hub livepeer/ is a curated product namespace and this is an
example, so drop the opt-in second target rather than leave a path into
it. Matches runner-app-examples.

compose.yml builds from source and named no image, so nothing could land
on the published one without hand-editing a compose file. An overlay
adds it, keeping the registry out of the default path; at ~15 GB pulling
is the sane route for anyone not changing the Dockerfile.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Tag a v* release as stable, and declare the OCI labels where they are
actually applied. metadata-action passes labels as --label, which beats
anything baked into the image, so Dockerfile LABELs were both redundant
and contradicted on licence: they said Apache-2.0 while the generated
default said MIT. The image carries both, so it says so.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Matches what runner-app-examples landed. `pull_policy: build` keeps a
bare `up` building from source, so naming the image cannot silently run
a published one over a contributor's code, and `--pull always` reaches
the registry. One file rather than two to keep in step.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@rickstaa
rickstaa merged commit 0b1c08c into main Aug 19, 2026
1 check passed
@rickstaa
rickstaa deleted the rs/ghcr-only branch August 19, 2026 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant