53 lines
1.5 KiB
YAML
53 lines
1.5 KiB
YAML
services:
|
|
worker:
|
|
image: python:3.11-slim
|
|
container_name: email-worker-${WORKER_DOMAIN}
|
|
restart: unless-stopped
|
|
network_mode: host # Zugriff auf lokales Netzwerk für Postfix
|
|
|
|
# Worker-Code mounten
|
|
volumes:
|
|
- ./worker.py:/app/worker.py:ro
|
|
|
|
working_dir: /app
|
|
|
|
# Python Dependencies installieren und Worker starten
|
|
command: >
|
|
sh -c "apt-get update &&
|
|
apt-get install -y --no-install-recommends procps &&
|
|
rm -rf /var/lib/apt/lists/* &&
|
|
pip install --no-cache-dir boto3 &&
|
|
python -u worker.py"
|
|
|
|
environment:
|
|
# ⚠️ WICHTIG: WORKER_DOMAIN muss von außen gesetzt werden!
|
|
- WORKER_DOMAIN=${WORKER_DOMAIN}
|
|
|
|
# AWS Credentials
|
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
|
|
|
# Worker Settings
|
|
- POLL_INTERVAL=${POLL_INTERVAL:-20}
|
|
- MAX_MESSAGES=${MAX_MESSAGES:-10}
|
|
- VISIBILITY_TIMEOUT=${VISIBILITY_TIMEOUT:-300}
|
|
|
|
# SMTP Configuration
|
|
- SMTP_HOST=${SMTP_HOST:-localhost}
|
|
- SMTP_PORT=${SMTP_PORT:-25}
|
|
- SMTP_USE_TLS=${SMTP_USE_TLS:-false}
|
|
- SMTP_USER=${SMTP_USER:-}
|
|
- SMTP_PASS=${SMTP_PASS:-}
|
|
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "5"
|
|
|
|
healthcheck:
|
|
test: ["CMD", "pgrep", "-f", "worker.py"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s |