docker-compose.yml referenced only the Gitea registry image, so
`docker compose up --build` ignored local source and never shipped
the channel variant grouping feature. Add a build section (root
context, local Dockerfile) alongside the registry image tag so
compose builds local code while keeping the published image name.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>