Files
app/docker-compose.yml
Albert 5fc02f8d9b fix: Complete CI/CD testing infrastructure setup
**Environment Variables:**
- Fixed docker-compose.ci.yml to use correct environment variable names:
  - SURREALDB_JWT_SECRET (not SURREAL_JWT_SECRET)
  - GOOGLE_GENERATIVE_AI_API_KEY (not GOOGLE_API_KEY)
- Updated Gitea Actions workflow to match correct variable names

**Docker Configuration:**
- Removed SurrealDB health check (minimal scratch image lacks utilities)
- Added 10-second sleep before Next.js starts to wait for SurrealDB
- Updated magnitude service to run as root user for npm global installs
- Added xvfb-run to magnitude command for headless browser testing
- Updated Playwright Docker image from v1.49.1 to v1.56.1 in both files
- Added named volume for node_modules to persist installations

**Test Configuration:**
- Updated magnitude.config.ts to use Claude Sonnet 4.5 (20250929)
- Added headless: true to playwright.config.ts

**Testing:**
- CI test script (./scripts/test-ci-locally.sh) now works correctly
- All services start properly: SurrealDB → Next.js → Magnitude
- Playwright launches successfully in headless mode with xvfb-run

Note: Users need to ensure .env contains:
- ATPROTO_CLIENT_ID
- ATPROTO_REDIRECT_URI
- SURREALDB_JWT_SECRET
- GOOGLE_GENERATIVE_AI_API_KEY
- ANTHROPIC_API_KEY

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 15:03:01 +00:00

58 lines
1.4 KiB
YAML

services:
surrealdb:
image: surrealdb/surrealdb:latest
ports:
- "8000:8000"
command:
- start
- --log
- trace
- --user
- ${SURREALDB_USER}
- --pass
- ${SURREALDB_PASS}
- memory
volumes:
- ./surreal/data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 10s
timeout: 5s
retries: 5
surrealmcp:
image: surrealdb/surrealmcp:latest
command: >
start
--bind-address 0.0.0.0:8080
--server-url http://localhost:8080
-e ws://surrealdb:8000/rpc
--ns ${SURREALDB_NS} --db ${SURREALDB_DB} -u ${SURREALDB_USER} -p ${SURREALDB_PASS}
ports:
- "8080:8080"
depends_on:
- surrealdb
playwright:
image: mcr.microsoft.com/playwright:v1.56.1-noble
working_dir: /home/pwuser/app
user: pwuser
network_mode: host
volumes:
- .:/home/pwuser/app
- /home/pwuser/app/node_modules
environment:
- TEST_BLUESKY_HANDLE=${TEST_BLUESKY_HANDLE}
- TEST_BLUESKY_PASSWORD=${TEST_BLUESKY_PASSWORD}
- PLAYWRIGHT_BASE_URL=${PLAYWRIGHT_BASE_URL:-http://localhost:3000}
command: >
sh -c "
npm install -g pnpm &&
pnpm install --frozen-lockfile &&
npx playwright test
"
depends_on:
- surrealdb
profiles:
- test