# Isolated e2e stack for CI (.gitea/workflows/ci.yml) — runs on the runner's shared dind # daemon under project name space-wanderer-ci (distinct from production). Joins the external # network space-wanderer-ci-e2e that the workflow attaches the job container to; the app is reached # at its STATIC IP http://172.39.0.10:3000 — DNS bypassed for the browser because Chromium # got ERR_SSL_PROTOCOL_ERROR via the hostname while node-side HTTP worked (the `app` alias # stays as a convenience). Single deterministic address; survives `docker compose restart space-wanderer`. # The build context is tarred by the compose client in the job and sent over DOCKER_HOST, # so nothing here needs to be visible from inside dind; game state lives in a named volume # (fresh per run — CI cleanup removes it — survives `docker compose restart space-wanderer` for # e2e/state.spec.ts). services: space-wanderer: build: . image: space-wanderer-ci volumes: - space-wanderer-db:/app/db networks: space-wanderer-ci-e2e: aliases: - app ipv4_address: 172.39.0.10 networks: space-wanderer-ci-e2e: name: space-wanderer-ci-e2e external: true volumes: space-wanderer-db: