version: '3.8'
services:
mcp-server:
build:
context: .
dockerfile: Dockerfile
target: runtime
ports:
- "3000:3000"
environment:
- PORT=3000
- USE_TEST_FIXTURES=false
- NODE_ENV=production
- BIND_ADDRESS=0.0.0.0
- MAX_SESSIONS=100
- SESSION_TIMEOUT_MS=300000
- RATE_LIMIT_WINDOW_MS=60000
- RATE_LIMIT_MAX_REQUESTS=100
- CORS_ORIGIN=*
- REQUEST_SIZE_LIMIT=10mb
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1); })"]
interval: 30s
timeout: 3s
retries: 3
start_period: 5s
restart: unless-stopped