56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
# =============================================================================
|
|
# Job Ops - Docker Compose Configuration
|
|
# =============================================================================
|
|
|
|
services:
|
|
job-ops:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
image: ghcr.io/dakheera47/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:
|