services: valkey: image: valkey/valkey:8.0-alpine container_name: gds-mock-valkey ports: - "6379:6379" volumes: - valkey_data:/data command: > valkey-server --save 60 1 --loglevel warning --maxmemory 256mb --maxmemory-policy allkeys-lru healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 10s timeout: 3s retries: 3 start_period: 5s restart: unless-stopped networks: - gds-network gds-mock-mcp: build: context: . dockerfile: docker/Dockerfile container_name: gds-mock-mcp depends_on: valkey: condition: service_healthy ports: - "${PORT:-3000}:3000" # HTTP port for MCP Streamable HTTP transport environment: - NODE_ENV=production - LOG_LEVEL=${LOG_LEVEL:-info} - VALKEY_HOST=valkey - VALKEY_PORT=6379 - MCP_SESSION_TIMEOUT=${MCP_SESSION_TIMEOUT:-3600} - MOCK_DATA_SEED=${MOCK_DATA_SEED:-random} - PORT=3000 - HOST=0.0.0.0 # Bind to all interfaces in Docker restart: unless-stopped networks: - gds-network stdin_open: true tty: true healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"] interval: 30s timeout: 3s retries: 3 start_period: 10s volumes: valkey_data: driver: local networks: gds-network: driver: bridge