-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.linux.yml
More file actions
94 lines (89 loc) · 2.83 KB
/
Copy pathdocker-compose.linux.yml
File metadata and controls
94 lines (89 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# Docker Compose for Linux - Uses host networking
#
# On Linux, host.docker.internal doesn't work reliably with native Docker.
# Solution: Use network_mode: host so containers access localhost directly.
#
# Usage:
# docker compose -f docker-compose.linux.yml up -d postgres
# docker compose -f docker-compose.linux.yml --profile competitors up -d
services:
# ===========================================
# PostgreSQL - Enterprise Telemetry
# ===========================================
postgres:
image: postgres:16-alpine
container_name: benchmark-postgres
network_mode: host
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: vidai_benchmark
PGPORT: 5433
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -p 5433"]
interval: 5s
timeout: 3s
retries: 5
# ===========================================
# LiteLLM - Python Gateway
# Uses localhost:8100 to reach VidaiMock
# ===========================================
litellm:
image: ghcr.io/berriai/litellm:main-latest
container_name: benchmark-litellm
network_mode: host
volumes:
- ./configs/litellm:/app/config:ro
command: ["--config", "/app/config/config.linux.yaml", "--port", "4000"]
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:4000/health -H 'Authorization: Bearer sk-litellm-bench' || exit 1"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
profiles:
- competitors
# ===========================================
# Bifrost - Go Gateway
# Uses localhost:8100 to reach VidaiMock
# ===========================================
bifrost:
image: maximhq/bifrost:latest
container_name: benchmark-bifrost
network_mode: host
environment:
- LOG_LEVEL=error
- PORT=8080
volumes:
# Mount Linux-specific config as config.json (Bifrost reads from /app/data/config.json)
- ./configs/bifrost/config.linux.json:/app/data/config.json:ro
healthcheck:
test: ["CMD-SHELL", "wget -q --spider http://localhost:8080/health || exit 0"]
interval: 5s
timeout: 3s
retries: 10
profiles:
- competitors
# ===========================================
# Portkey - TypeScript Gateway
# Uses x-portkey-custom-host: http://localhost:8100/v1
# ===========================================
portkey:
image: portkeyai/gateway:latest
container_name: benchmark-portkey
network_mode: host
environment:
- LOG_LEVEL=error
- PORT=8787
healthcheck:
test: ["CMD-SHELL", "wget -q --spider http://localhost:8787/public/ || exit 0"]
interval: 5s
timeout: 3s
retries: 10
profiles:
- competitors
volumes:
postgres_data:
name: benchmark_postgres_data