version: '3.8' services: playwright-mcp: build: context: . dockerfile: Dockerfile.playwright container_name: playwright-mcp ports: - "8931:8931" volumes: - ./:/app - /app/node_modules environment: - PLAYWRIGHT_MCP_BROWSER=chromium - PLAYWRIGHT_MCP_HEADLESS=false - PLAYWRIGHT_MCP_NO_SANDBOX=true - PLAYWRIGHT_MCP_PORT=8931 - PLAYWRIGHT_MCP_HOST=0.0.0.0 - DISPLAY=${DISPLAY:-:0} restart: unless-stopped shm_size: '2gb' ipc: host security_opt: - seccomp:unconfined # For visual debugging (headed mode) playwright-headed: image: mcr.microsoft.com/playwright:v1.58.2-noble container_name: playwright-headed ports: - "8932:8931" volumes: - ./:/app environment: - DISPLAY=$DISPLAY command: > npx @playwright/mcp@latest --browser chromium --port 8931 --host 0.0.0.0 profiles: - debug # For running tests locally test-runner: image: mcr.microsoft.com/playwright:v1.58.2-noble container_name: playwright-test volumes: - ./:/app working_dir: /app command: npx playwright test profiles: - test