Jobber/docker-compose.yml
Shaheer Sarfaraz d34a9f041b
Hiring cafe extractor (#192)
* feat(hiringcafe): register new source across shared/server/client enums

* feat(hiringcafe-extractor): add browser-backed Hiring Cafe dataset extractor

* feat(orchestrator): integrate Hiring Cafe discovery service into pipeline

* feat(orchestrator-ui): add Hiring Cafe to source availability and run estimates

* chore(hiringcafe): wire CI/docker and add extractor documentation

* chore(format): apply biome formatting for Hiring Cafe integration

* add original websites

* coomints

* number or null
2026-02-19 12:51:55 +00:00

63 lines
1.8 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
env_file:
- path: ./.env
required: false
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/hiringcafe/src
target: /app/extractors/hiringcafe/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: