69 lines
1.7 KiB
YAML
69 lines
1.7 KiB
YAML
version: "3.8"
|
|
|
|
# Unified Email Worker - verarbeitet alle Domains mit einem Container
|
|
|
|
services:
|
|
unified-worker:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: unified-email-worker
|
|
restart: unless-stopped
|
|
network_mode: host # Für lokalen SMTP-Zugriff
|
|
|
|
volumes:
|
|
# Domain-Liste (eine Domain pro Zeile)
|
|
- ./domains.txt:/etc/email-worker/domains.txt:ro
|
|
# Logs
|
|
- ./logs:/var/log/email-worker
|
|
|
|
environment:
|
|
# AWS Credentials
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
- AWS_REGION=us-east-2
|
|
|
|
# Alternative: Domains direkt als Liste
|
|
# - DOMAINS=andreasknuth.de,bayarea-cc.com,bizmatch.net
|
|
|
|
# Worker Settings
|
|
- WORKER_THREADS=${WORKER_THREADS:-10}
|
|
- POLL_INTERVAL=${POLL_INTERVAL:-20}
|
|
- MAX_MESSAGES=${MAX_MESSAGES:-10}
|
|
- VISIBILITY_TIMEOUT=${VISIBILITY_TIMEOUT:-300}
|
|
|
|
# SMTP (lokal zum DMS)
|
|
- SMTP_HOST=${SMTP_HOST:-localhost}
|
|
- SMTP_PORT=${SMTP_PORT:-25}
|
|
- SMTP_POOL_SIZE=${SMTP_POOL_SIZE:-5}
|
|
|
|
# Monitoring
|
|
- METRICS_PORT=8000
|
|
- HEALTH_PORT=8080
|
|
|
|
ports:
|
|
# Prometheus Metrics
|
|
- "8000:8000"
|
|
# Health Check
|
|
- "8080:8080"
|
|
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "50m"
|
|
max-file: "10"
|
|
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 512M
|
|
reservations:
|
|
memory: 256M
|