35 lines
881 B
YAML
35 lines
881 B
YAML
services:
|
|
# Run scraper once (for manual/cron triggering)
|
|
scraper:
|
|
build: .
|
|
container_name: job-scraper
|
|
volumes:
|
|
- ./data:/app/data
|
|
- ./config.yaml:/app/config.yaml:ro
|
|
environment:
|
|
- TZ=America/Toronto
|
|
|
|
# Scheduled scraper - runs daily at 9 AM
|
|
scraper-scheduled:
|
|
build: .
|
|
container_name: job-scraper-scheduled
|
|
volumes:
|
|
- ./data:/app/data
|
|
- ./config.yaml:/app/config.yaml:ro
|
|
environment:
|
|
- TZ=America/Toronto
|
|
command: ["python", "main.py", "--schedule"]
|
|
restart: unless-stopped
|
|
|
|
# Web dashboard - lightweight static file server
|
|
dashboard:
|
|
image: nginx:alpine
|
|
container_name: job-dashboard
|
|
ports:
|
|
- "8080:80"
|
|
volumes:
|
|
- ./data:/usr/share/nginx/html:ro
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- scraper
|