Files
pd-guard/compose.yaml
T
2026-09-21 17:40:25 +03:00

62 lines
2.0 KiB
YAML

# Один узел: памяти процесса достаточно, общий слой не нужен.
# docker compose up pd-guard
#
# Несколько узлов: маскирование детерминировано и работает на любом узле, а вот
# обратный шаг требует общего состояния — иначе запрос попадёт не на тот узел.
# docker compose --profile cluster up
services:
pd-guard:
build:
context: .
dockerfile: src/main/docker/Dockerfile.native
ports:
- "8080:8080"
environment:
PDGUARD_MAX_CONCURRENT: "2000"
PDGUARD_STORE_TTL_MINUTES: "30"
# Переменная не задана — вторая ступень выключена. Чтобы включить:
# PDGUARD_NER_MODEL: /work/models/ru-ner-person.bin
volumes:
- ./config:/work/config:ro
# Модель второй ступени монтируется томом: в образ она не входит.
# Собрать: ./tools/train-ner.sh full
- ./models:/work/models:ro
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"]
interval: 10s
timeout: 2s
retries: 3
redis:
profiles: ["cluster"]
image: redis:7-alpine
command: ["redis-server", "--save", "", "--appendonly", "no", "--maxmemory", "1gb", "--maxmemory-policy", "allkeys-lru"]
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 2s
retries: 5
node-a: &node
profiles: ["cluster"]
build:
context: .
dockerfile: src/main/docker/Dockerfile.native
ports:
- "8081:8080"
environment:
PDGUARD_STORE_BACKEND: redis
QUARKUS_REDIS_HOSTS: redis://redis:6379
PDGUARD_MAX_CONCURRENT: "2000"
volumes:
- ./config:/work/config:ro
depends_on:
redis:
condition: service_healthy
node-b:
<<: *node
ports:
- "8082:8080"