-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
101 lines (97 loc) · 2.68 KB
/
Copy pathdocker-compose.yml
File metadata and controls
101 lines (97 loc) · 2.68 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
95
96
97
98
99
100
101
services:
db:
image: postgres:15-alpine
container_name: dira-db
restart: always
env_file:
- ./.env
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5433:5432"
expose:
- "5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
backend:
build:
context: ./dira_agent
dockerfile: Dockerfile
container_name: dira-backend
restart: always
depends_on:
db:
condition: service_healthy
env_file:
- ./.env
environment:
- APP_ENV=${APP_ENV}
- DATABASE_URL=${DATABASE_URL}
- JWT_SECRET=${JWT_SECRET}
- GEMINI_API_KEY=${GEMINI_API_KEY}
- FRONTEND_ORIGIN=${FRONTEND_ORIGIN}
- ADMIN_EMAIL=${ADMIN_EMAIL}
- FEEDER_SHARED_TOKEN=${FEEDER_SHARED_TOKEN}
- DIRA_INTERNAL_TOKEN=${DIRA_INTERNAL_TOKEN}
- WHATSAPP_VERIFY_TOKEN=${WHATSAPP_VERIFY_TOKEN}
ports:
- "8000:8000"
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health/live')"]
interval: 30s
timeout: 10s
retries: 3
whatsapp-bridge:
build:
context: ./whatsapp_bridge
dockerfile: Dockerfile
container_name: dira-whatsapp-bridge
restart: always
depends_on:
db:
condition: service_healthy
backend:
condition: service_healthy
env_file:
- ./.env
environment:
- PORT=3000
- DIRA_URL=http://backend:8000/ambient/webhook
- DATABASE_URL=${DATABASE_URL}
- WEBHOOK_SECRET=${WEBHOOK_SECRET}
# Restrict admin endpoints (/ and /logout) to the listed origins.
# Add your frontend URL here. Comma-separate multiple origins.
- BRIDGE_ALLOWED_ORIGINS=${BRIDGE_ALLOWED_ORIGINS}
ports:
- "3000:3000"
healthcheck:
test: ["CMD", "node", "-e", "fetch('http://localhost:3000/health').then(r => r.ok ? process.exit(0) : process.exit(1)).catch(() => process.exit(1))"]
interval: 30s
timeout: 10s
retries: 3
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
args:
VITE_API_BASE: ${VITE_API_BASE}
VITE_BRIDGE_URL: ${VITE_BRIDGE_URL}
VITE_ADMIN_EMAIL: ${VITE_ADMIN_EMAIL}
container_name: dira-frontend
restart: always
ports:
- "8080:8080"
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:8080/"]
interval: 30s
timeout: 10s
retries: 3
volumes:
pgdata: