feat: Docker support with multi-arch GHCR images #98

Merged
razvandimescu merged 1 commits from docker-support into main 2026-04-13 20:53:56 +08:00
razvandimescu commented 2026-04-13 20:48:47 +08:00 (Migrated from github.com)

Summary

  • Add GitHub Actions workflow to build multi-arch Docker images (linux/amd64 + linux/arm64) and push to ghcr.io/razvandimescu/numa on tag push
  • Fix Dockerfile: copy benches/ directory (Cargo manifest validation requires it)
  • Bake container-aware defaults: API and proxy bind to 0.0.0.0 so dashboard and .numa services work with port mapping (not just --network host)
  • Add Docker section to README with host networking, port mapping, and volume-mount config examples

Test plan

  • docker build succeeds (linux/amd64)
  • Container boots, shows Numa banner, generates CA
  • DNS resolution works via port mapping (dig @127.0.0.1 -p 5354 google.com)
  • API /health and /stats endpoints reachable via port mapping
  • Multi-arch build (arm64 via QEMU — deferred to CI)
  • GHCR push on next tag
## Summary - Add GitHub Actions workflow to build multi-arch Docker images (linux/amd64 + linux/arm64) and push to `ghcr.io/razvandimescu/numa` on tag push - Fix Dockerfile: copy `benches/` directory (Cargo manifest validation requires it) - Bake container-aware defaults: API and proxy bind to `0.0.0.0` so dashboard and `.numa` services work with port mapping (not just `--network host`) - Add Docker section to README with host networking, port mapping, and volume-mount config examples ## Test plan - [x] `docker build` succeeds (linux/amd64) - [x] Container boots, shows Numa banner, generates CA - [x] DNS resolution works via port mapping (`dig @127.0.0.1 -p 5354 google.com`) - [x] API `/health` and `/stats` endpoints reachable via port mapping - [x] Multi-arch build (arm64 via QEMU — deferred to CI) - [x] GHCR push on next tag
Sign in to join this conversation.