0cae89cba2
Tests · Go / test (push) Successful in 1m59s
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.
47 lines
1.9 KiB
Markdown
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).
|