services:
auslaw-mcp:
build:
context: .
dockerfile: Dockerfile
image: auslaw-mcp:latest
container_name: auslaw-mcp
restart: unless-stopped
# Environment variables (can be overridden via .env file)
environment:
NODE_ENV: ${NODE_ENV:-production}
AUSTLII_SEARCH_BASE: ${AUSTLII_SEARCH_BASE:-https://www.austlii.edu.au/cgi-bin/sinosrch.cgi}
AUSTLII_REFERER: ${AUSTLII_REFERER:-https://www.austlii.edu.au/forms/search1.html}
AUSTLII_USER_AGENT: ${AUSTLII_USER_AGENT:-Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36}
AUSTLII_TIMEOUT: ${AUSTLII_TIMEOUT:-60000}
OCR_LANGUAGE: ${OCR_LANGUAGE:-eng}
OCR_OEM: ${OCR_OEM:-1}
OCR_PSM: ${OCR_PSM:-3}
DEFAULT_SEARCH_LIMIT: ${DEFAULT_SEARCH_LIMIT:-10}
MAX_SEARCH_LIMIT: ${MAX_SEARCH_LIMIT:-50}
DEFAULT_OUTPUT_FORMAT: ${DEFAULT_OUTPUT_FORMAT:-json}
DEFAULT_SORT_BY: ${DEFAULT_SORT_BY:-auto}
# Mount config.yaml for reference (optional)
volumes:
- ./config.yaml:/app/config.yaml:ro
# MCP servers use stdio, no ports to expose
# stdin_open and tty are enabled for stdio communication
stdin_open: true
tty: true
# Health check (basic container health)
healthcheck:
test: ["CMD", "node", "-e", "console.log('healthy')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s