40 lines
1.4 KiB
YAML
40 lines
1.4 KiB
YAML
services:
|
|
cloak:
|
|
build:
|
|
context: ..
|
|
dockerfile: deploy/Dockerfile
|
|
image: didi-ai/cloak:latest
|
|
container_name: didiAI-cloak
|
|
restart: unless-stopped
|
|
networks:
|
|
- didi-network
|
|
environment:
|
|
CLOAK_HOST: 0.0.0.0
|
|
CLOAK_PORT: 8770
|
|
CLOAK_POOL_SIZE: ${CLOAK_POOL_SIZE:-3}
|
|
CLOAK_SEARCH_TIMEOUT_SEC: ${CLOAK_SEARCH_TIMEOUT_SEC:-20}
|
|
CLOAK_PAGE_TIMEOUT_MS: ${CLOAK_PAGE_TIMEOUT_MS:-18000}
|
|
CLOAK_MAX_ENGINES: ${CLOAK_MAX_ENGINES:-3}
|
|
CLOAK_MAX_QUERIES: ${CLOAK_MAX_QUERIES:-5}
|
|
CLOAK_DEFAULT_MAX_RESULTS: ${CLOAK_DEFAULT_MAX_RESULTS:-10}
|
|
CLOAK_MAX_RESULTS_CAP: ${CLOAK_MAX_RESULTS_CAP:-30}
|
|
CLOAK_ENGINE_MIN_INTERVAL_MS: ${CLOAK_ENGINE_MIN_INTERVAL_MS:-200}
|
|
CLOAK_HUMANIZE: ${CLOAK_HUMANIZE:-false}
|
|
CLOAK_AUTH_TOKEN: ${CLOAK_AUTH_TOKEN:-}
|
|
CLOAK_LOG_LEVEL: ${CLOAK_LOG_LEVEL:-INFO}
|
|
DISPLAY: ":99"
|
|
# Bind only to localhost on the host — intra-cluster access via DNS name
|
|
# `didiAI-cloak` on didi-network. Public exposure is undesirable (scraping
|
|
# endpoint should never be reachable from the internet).
|
|
ports:
|
|
- "127.0.0.1:8770:8770"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "python -c \"import urllib.request,sys; r=urllib.request.urlopen('http://127.0.0.1:8770/health', timeout=3); sys.exit(0 if r.status==200 else 1)\""]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
networks:
|
|
didi-network:
|
|
external: true
|