Files
galaxy-game/tools/dev-deploy/KNOWN-ISSUES.md
T
Ilia Denisov 0cae89cba2
Tests · Go / test (push) Successful in 1m59s
refactor(dev): remove the dev-sandbox bootstrap everywhere
Stage 1 of the dev-as-prod-mirror rework. The auto-provisioned "Dev
Sandbox" game and dummy users are removed so the dev contour starts
empty like prod; the separate legacy-report loader stays as the
test-data path.

- delete backend/internal/devsandbox (package + tests)
- drop the bootstrap call + DevSandboxConfig (struct, Config field,
  BACKEND_DEV_SANDBOX_* env, defaults, loader, validation)
- strip BACKEND_DEV_SANDBOX_* from dev-deploy + local-dev compose and
  .env.example; the generic engine-recycle / prune-broken-engines logic
  stays (it serves real games)
- update tooling docs (dev-deploy README + KNOWN-ISSUES, local-dev
  README + Makefile) and stale comments; DeleteGame and
  InsertMembershipDirect remain (exercised by lobby integration tests)

No app behaviour change beyond not auto-creating the sandbox game.
2026-05-31 22:28:03 +02:00

1.9 KiB

tools/dev-deploy/ — known issues

Issues that surfaced in the long-lived dev environment. Each entry lists the observed symptom, the diagnostic evidence, and the fix or the open questions that have to be answered before a fix lands.

docker restart galaxy-dev-backend fails after the CI runner cleans up

Status: fixed (2026-05-19). Kept here as a postmortem in case the symptom resurfaces in a different form.

Symptom

docker restart galaxy-dev-backend from the host failed with:

Error response from daemon: ... error mounting
"/home/runner/.cache/act/<workspace>/hostexecutor/pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb"
to rootfs at "/var/lib/galaxy/geoip.mmdb": ... not a directory

The container ended up Exited (127) and never came back.

Cause

tools/dev-deploy/docker-compose.yml used to mount the geoip database via a path relative to the compose file (../../pkg/geoip/test-data/test-data/GeoIP2-Country-Test.mmdb). When the dev-deploy.yaml Gitea runner invoked docker compose up, it resolved that relative path against the runner's ephemeral workspace under /home/runner/.cache/act/<hash>/hostexecutor/tools/dev-deploy/, so the bind-mount source baked into the running container pointed at that ephemeral path. The runner deleted the workspace once the workflow ended, the source disappeared, and the next docker restart failed to remount it.

Fix

Replaced the bind-mount with a named volume, galaxy-dev-geoip-data, seeded by the dev-deploy.yaml workflow (and by the new make seed-geoip target) at deploy time. The backend mounts the volume as /var/lib/galaxy:ro, so the bind source is a Docker-managed volume — independent of the runner workspace — and survives a docker restart. See .gitea/workflows/dev-deploy.yaml ("Seed geoip volume" step) and tools/dev-deploy/Makefile (seed-geoip target).