# Simplified docker-compose for CI/CD environments # Only includes services needed for testing (excludes surrealmcp) services: surrealdb: image: surrealdb/surrealdb:latest ports: - "8000:8000" command: - start - --log - trace - --user - ${SURREALDB_USER:-root} - --pass - ${SURREALDB_PASS:-root} - memory environment: - SURREAL_LOG=trace nextjs: image: node:20-alpine working_dir: /app ports: - "3000:3000" volumes: - .:/app - /app/node_modules - /app/.next environment: - SURREALDB_URL=ws://surrealdb:8000/rpc - SURREALDB_USER=${SURREALDB_USER:-root} - SURREALDB_PASS=${SURREALDB_PASS:-root} - SURREALDB_NS=${SURREALDB_NS:-ponderants} - SURREALDB_DB=${SURREALDB_DB:-main} - SURREALDB_JWT_SECRET=${SURREALDB_JWT_SECRET} - ATPROTO_CLIENT_ID=${ATPROTO_CLIENT_ID} - ATPROTO_REDIRECT_URI=${ATPROTO_REDIRECT_URI} - GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY} - DEEPGRAM_API_KEY=${DEEPGRAM_API_KEY} - TEST_BLUESKY_HANDLE=${TEST_BLUESKY_HANDLE} - TEST_BLUESKY_PASSWORD=${TEST_BLUESKY_PASSWORD} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - NODE_ENV=development command: > sh -c " npm install -g pnpm && pnpm install --frozen-lockfile && echo 'Waiting for SurrealDB to be ready...' && sleep 10 && pnpm dev " depends_on: - surrealdb healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"] interval: 5s timeout: 3s retries: 20 start_period: 40s magnitude: image: mcr.microsoft.com/playwright:v1.56.1-noble working_dir: /app user: root network_mode: "service:nextjs" volumes: - .:/app - node_modules:/app/node_modules environment: - TEST_BLUESKY_HANDLE=${TEST_BLUESKY_HANDLE} - TEST_BLUESKY_PASSWORD=${TEST_BLUESKY_PASSWORD} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - HOME=/root command: > sh -c " npm install -g pnpm && pnpm install --frozen-lockfile && npx wait-on http://localhost:3000 --timeout 120000 && xvfb-run --auto-servernum --server-args='-screen 0 1280x960x24' npx magnitude " depends_on: nextjs: condition: service_healthy profiles: - test volumes: node_modules: