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

47 lines
1.9 KiB
Markdown

# `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:
```text
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).