FAEA/docker-compose.yml
Luciabrightcode dab56e743b feat(phase4): Implement Deployment & Optimization Layer
- Scale docker-compose.yml (5 browser, 20 extractor replicas)
- Add Prometheus and Grafana monitoring services
- Implement persistent Redis TaskWorker in src/orchestrator/worker.py
- Implement MetricsCollector in src/core/monitoring.py
- Implement SessionRecoveryManager in src/core/recovery.py
- Update README.md with production usage guide
- Update root documentation (implementation_plan.md, walkthrough.md)
2025-12-23 13:09:27 +08:00

89 lines
1.6 KiB
YAML

version: '3.8'
services:
orchestrator:
build:
context: .
dockerfile: Dockerfile
environment:
- REDIS_URL=redis://redis:6379
- PYTHONUNBUFFERED=1
depends_on:
- redis
volumes:
- .:/app
command: tail -f /dev/null
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
deploy:
resources:
limits:
memory: 4G
camoufox-pool:
build:
context: .
dockerfile: src/browser/Dockerfile
environment:
- REDIS_URL=redis://redis:6379
- PYTHONUNBUFFERED=1
# - BROWSERFORGE_SEED=...
depends_on:
- redis
shm_size: 2gb
volumes:
- .:/app
- /dev/shm:/dev/shm
deploy:
replicas: 5
resources:
limits:
cpus: '2'
memory: 2G
command: tail -f /dev/null
curl-pool:
build:
context: .
dockerfile: src/extractor/Dockerfile
environment:
- REDIS_URL=redis://redis:6379
- PYTHONUNBUFFERED=1
depends_on:
- redis
volumes:
- .:/app
deploy:
replicas: 20
resources:
limits:
cpus: '0.5'
memory: 512M
command: tail -f /dev/null
prometheus:
image: prom/prometheus:latest
ports:
- "9090:9090"
volumes:
- ./infra/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
depends_on:
- prometheus
volumes:
- grafana_data:/var/lib/grafana
volumes:
redis_data:
prometheus_data:
grafana_data: