Files
IPSExtractor/services/services-count-facturas-medicas-serving/docker-compose.yml
T

200 lines
3.2 KiB
YAML

services:
redis:
image: redis:7-alpine
command: redis-server --maxmemory 1gb --maxmemory-policy allkeys-lru
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
nats:
image: nats:2-alpine
command: ["-js", "-m", "8222"]
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8222/healthz"]
interval: 5s
timeout: 3s
retries: 5
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- minio_data:/data
ports:
- "9002:9001"
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9000/minio/health/live || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
api:
build: .
command: ["/app/api"]
ports:
- "8080:8080"
depends_on:
redis:
condition: service_healthy
nats:
condition: service_healthy
minio:
condition: service_started
environment:
REDIS_URL: redis://redis:6379/0
NATS_URL: nats://nats:4222
MINIO_ENDPOINT: minio:9000
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
MINIO_BUCKET: pdf-count
MODEL_PATH: /app/models/model.onnx
INFERENCE_CONFIG: /app/models/inference.json
SYNC_MAX_FILES: 50
JOB_MAX_FILES: 50000
QUEUE_MAX_PENDING: 100000
OPENAPI_PATH: /app/openapi.yaml
OCR_POOL_SIZE: 4
SYNC_PROCESS_CONCURRENCY: 4
JOB_INLINE_PROCESSING: "false"
LOG_PIPELINE_TIMING: "true"
volumes:
- ./models/latest:/app/models:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 10s
timeout: 5s
retries: 5
worker:
build: .
command: ["/app/worker"]
depends_on:
redis:
condition: service_healthy
nats:
condition: service_healthy
minio:
condition: service_started
environment:
REDIS_URL: redis://redis:6379/0
NATS_URL: nats://nats:4222
MINIO_ENDPOINT: minio:9000
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
MINIO_BUCKET: pdf-count
MODEL_PATH: /app/models/model.onnx
INFERENCE_CONFIG: /app/models/inference.json
WORKER_CONCURRENCY: 4
PDF_PROCESS_TIMEOUT_SEC: 120
OCR_POOL_SIZE: 4
NATS_FETCH_MAX_WAIT_MS: 300
LOG_PIPELINE_TIMING: "true"
JOB_INLINE_PROCESSING: "false"
volumes:
- ./models/latest:/app/models:ro
autoscaler:
build:
context: .
dockerfile: Dockerfile.autoscaler
depends_on:
redis:
condition: service_healthy
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- .:/project:ro
working_dir: /project
environment:
REDIS_URL: redis://redis:6379/0
COMPOSE_FILE: /project/docker-compose.yml
COMPOSE_SERVICE: worker
MIN_WORKERS: 1
MAX_WORKERS: 8
WORKER_SLOTS: 4
POLL_INTERVAL_SEC: 5
SCALE_DOWN_IDLE_SEC: 60
volumes:
minio_data: