Files
agent-call/compose.yaml
T

149 lines
4.4 KiB
YAML

---
name: agent-call
services:
rabbitmq:
image: >-
rabbitmq:4.1-management-alpine@sha256:eb6736723c5d0831ab12d29e7a2b8ee1082f744370c2a784b50b84b3b4d6d030
restart: unless-stopped
init: true
environment:
RABBITMQ_DEFAULT_USER: >-
${RABBITMQ_DEFAULT_USER:?Set RABBITMQ_DEFAULT_USER}
RABBITMQ_DEFAULT_PASS: >-
${RABBITMQ_DEFAULT_PASS:?Set RABBITMQ_DEFAULT_PASS}
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "-q", "ping"]
interval: 5s
timeout: 3s
retries: 12
volumes:
- rabbitmq_data:/var/lib/rabbitmq
logging:
driver: json-file
options: {max-size: "10m", max-file: "3"}
agent-call:
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
init: true
depends_on:
rabbitmq:
condition: service_healthy
ports:
- "127.0.0.1:${AGENT_CALL_PORT:-18080}:8080"
environment:
AGENT_CALL_MODE: "mock"
BROKER_MODE: "rabbit"
RABBITMQ_URL: "${RABBITMQ_URL:?Set RABBITMQ_URL}"
HTTP_TOKENS: "${HTTP_TOKENS:?Set HTTP_TOKENS}"
AGENT_CALL_SIP_READONLY_URL: "${AGENT_CALL_SIP_READONLY_URL:-}"
AGENT_CALL_SIP_READONLY_TOKEN: "${AGENT_CALL_SIP_READONLY_TOKEN:-}"
AGENT_CALL_SIP_READONLY_CA_FILE: >-
${AGENT_CALL_SIP_READONLY_CA_FILE:-}
AGENT_CALL_SIP_READONLY_TIMEOUT_SECONDS: >-
${AGENT_CALL_SIP_READONLY_TIMEOUT_SECONDS:-5}
volumes:
- agent_call_data:/data
read_only: false
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
pids_limit: 256
mem_limit: 512m
cpus: 2
logging:
driver: json-file
options: {max-size: "10m", max-file: "3"}
sip-management:
build:
context: .
dockerfile: Dockerfile
profiles: ["sip-management"]
restart: unless-stopped
init: true
entrypoint: ["python", "-m", "agent_call.sip_management_main"]
ports:
- "127.0.0.1:${SIP_MANAGEMENT_PORT:-18090}:8090"
environment:
SIP_MANAGEMENT_MODE: "${SIP_MANAGEMENT_MODE:-mock}"
SIP_MANAGEMENT_HOST: "0.0.0.0"
SIP_MANAGEMENT_PORT: "8090"
SIP_MANAGEMENT_DB: "/data/sip-management.sqlite3"
SIP_ADMIN_TOKENS: "${SIP_ADMIN_TOKENS:?Set SIP_ADMIN_TOKENS}"
SIP_READ_TOKENS: "${SIP_READ_TOKENS:?Set SIP_READ_TOKENS}"
SIP_CELL_TLS_CA_FILE: "${SIP_CELL_TLS_CA_FILE:-/run/sip-tls/ca.pem}"
SIP_CELL_TLS_CERT_FILE: >-
${SIP_CELL_TLS_CERT_FILE:-/run/sip-tls/client.pem}
SIP_CELL_TLS_KEY_FILE: >-
${SIP_CELL_TLS_KEY_FILE:-/run/sip-tls/client-key.pem}
SIP_CELL_PUBLISH_TIMEOUT_SECONDS: >-
${SIP_CELL_PUBLISH_TIMEOUT_SECONDS:-15}
PYTHONDONTWRITEBYTECODE: "1"
volumes:
- sip_management_data:/data
- "${SIP_CELL_TLS_DIR:-./secrets/sip-management}:/run/sip-tls:ro"
tmpfs:
- /tmp:rw,noexec,nosuid,size=16m
read_only: true
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
pids_limit: 128
mem_limit: 256m
cpus: 1
healthcheck:
test:
- CMD
- python
- -c
- >-
import urllib.request;
urllib.request.urlopen(
'http://127.0.0.1:8090/healthz/live', timeout=2
)
interval: 5s
timeout: 3s
retries: 12
logging:
driver: json-file
options: {max-size: "10m", max-file: "3"}
asr-web:
build:
context: ./services/asr-web
restart: unless-stopped
init: true
read_only: true
cap_drop: [ALL]
security_opt: [no-new-privileges:true]
pids_limit: 128
mem_limit: 256m
cpus: 1
ports:
- "127.0.0.1:${ASR_WEB_PORT:-18088}:8080"
environment:
ASR_LISTEN: "0.0.0.0:8080"
ASR_WEB_TOKEN: "${ASR_WEB_TOKEN:?Set ASR_WEB_TOKEN}"
PUBLIC_ORIGIN: "${PUBLIC_ORIGIN:-}"
BAILIAN_API_KEY: "${BAILIAN_API_KEY:-}"
BAILIAN_WS: "${BAILIAN_WS:-}"
FUNASR_API_KEY: "${FUNASR_API_KEY:-}"
FUNASR_WS: "${FUNASR_WS:-}"
BAILIAN_ASR_MODELS: "${BAILIAN_ASR_MODELS:-fun-asr-realtime}"
VOLC_APP_KEY: "${VOLC_APP_KEY:-}"
VOLC_APP_ID: "${VOLC_APP_ID:-}"
VOLC_ACCESS_TOKEN: "${VOLC_ACCESS_TOKEN:-}"
VOLC_RESOURCE_ID: "${VOLC_RESOURCE_ID:-volc.bigasr.sauc.duration}"
VOLC_WS: "${VOLC_WS:-wss://openspeech.bytedance.com/api/v3/sauc/bigmodel}"
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
volumes:
rabbitmq_data:
agent_call_data:
sip_management_data: