50 lines
2.0 KiB
YAML
50 lines
2.0 KiB
YAML
# Один узел, состояние маскирования/демаскирования — в памяти самого процесса
|
|
# (pdguard.store.backend=memory, дефолт). Redis был нужен только чтобы разделить
|
|
# состояние между несколькими репликами; кластерная схема на 4-vCPU хосте под
|
|
# нагрузкой давала конкуренцию за CPU (см. историю в git) — один узел проще и
|
|
# получает весь хост целиком.
|
|
services:
|
|
|
|
pd-guard:
|
|
image: pd-guard-spring:jvm
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
PDGUARD_MAX_CONCURRENT: "2000"
|
|
PDGUARD_WARMUP_ITERATIONS: "2000"
|
|
# Вторая ступень распознавания — две модели под разные задачи (см.
|
|
# NameCascade.java): WikiNEuRal размечает имена, ruBERT — составляющие
|
|
# адреса. Модели в репозиторий не входят: ./tools/fetch-ner-model.sh.
|
|
PDGUARD_NER_NAME_ENGINE: wikineural
|
|
PDGUARD_NER_NAME_MODEL: /deployments/models/wikineural-ner
|
|
PDGUARD_NER_ADDRESS_ENGINE: rubert
|
|
PDGUARD_NER_ADDRESS_MODEL: /deployments/models/rubert-ner
|
|
volumes:
|
|
- ./config:/deployments/config:ro
|
|
- ./models:/deployments/models:ro
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"]
|
|
interval: 10s
|
|
timeout: 2s
|
|
retries: 3
|
|
|
|
prometheus:
|
|
image: prom/prometheus:v2.55.1
|
|
volumes:
|
|
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
ports:
|
|
- "9090:9090"
|
|
|
|
grafana:
|
|
image: grafana/grafana:11.3.0
|
|
depends_on:
|
|
- prometheus
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
GF_AUTH_ANONYMOUS_ENABLED: "true"
|
|
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
|
|
volumes:
|
|
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
|
|
- ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro
|