# Isolated e2e stack for CI (.gitea/workflows/ci.yml) — runs on the runner's shared dind # daemon under project name flight-ci (distinct from production). Joins the external # network flight-ci-e2e that the workflow attaches the job container to; the app is reached # via service DNS as http://app:3000 (alias declared below) — no host port mapping needed. # 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 flight` for # e2e/state.spec.ts). services: flight: build: . image: flight-ops-ci environment: FLIGHT_TEST_HOOKS: "1" volumes: - flight-db:/app/db networks: flight-ci-e2e: aliases: - app networks: flight-ci-e2e: name: flight-ci-e2e external: true volumes: flight-db: