# ============================================================================= # Job Ops - Docker Compose Configuration # ============================================================================= services: job-ops: build: context: . dockerfile: Dockerfile image: job-ops:latest container_name: job-ops ports: - "3005:3001" volumes: # Persist database and generated PDFs - ./data:/app/data environment: # Server config - NODE_ENV=production - PORT=3001 # Python path (uses system python in container) - PYTHON_PATH=/usr/bin/python3 restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001/health"] interval: 30s timeout: 10s retries: 3 start_period: 10s develop: watch: # Rebuild container when package.json changes - path: ./orchestrator/package.json action: rebuild - path: ./orchestrator/package-lock.json action: rebuild # Sync source code changes and rebuild inside container - path: ./orchestrator/src target: /app/orchestrator/src action: sync+restart # Sync extractor changes - path: ./extractors/gradcracker/src target: /app/extractors/gradcracker/src action: sync+restart - path: ./extractors/ukvisajobs/src target: /app/extractors/ukvisajobs/src action: sync+restart - path: ./extractors/jobspy target: /app/extractors/jobspy action: sync+restart # Volumes for data persistence volumes: data: