-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
141 lines (136 loc) · 4.32 KB
/
Copy pathdocker-compose.dev.yml
File metadata and controls
141 lines (136 loc) · 4.32 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
services:
# MongoDB
mongodb:
image: mongo:8.0
container_name: ac-quix-mongodb
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: test-manager
MONGO_INITDB_ROOT_PASSWORD: local-dev-password
MONGO_INITDB_DATABASE: test_manager
volumes:
- mongodb_data:/data/db
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
# Mock Dynamic Configuration Manager
config-api:
build:
context: ./mock_config_api
container_name: ac-quix-config-api
ports:
- "8001:8001"
environment:
DCM_PERSIST_PATH: /data/configs.json
volumes:
- config_api_data:/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8001/health"]
interval: 10s
timeout: 5s
retries: 5
# Mock QuixLake query API — serves saved CSV fixtures for telemetry viz
mock-lake:
build:
context: ./mock_lake_api
container_name: ac-quix-mock-lake
ports:
- "8002:8002"
environment:
FIXTURE_DIR: /data
volumes:
- ./mock_lake_api/data:/data
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8002/health')"]
interval: 10s
timeout: 5s
retries: 5
# Test Manager Backend (FastAPI)
backend:
build:
context: .
dockerfile: test-manager-backend/dockerfile
args:
MAINAPPPATH: test-manager-backend
container_name: ac-quix-backend
ports:
- "8080:8080"
environment:
LOCAL_DEV_MODE: "true"
API_AUTH_ACTIVE: "false"
MONGO_USER: test-manager
MONGO_PASSWORD: local-dev-password
MONGO_HOST: mongodb
MONGO_PORT: "27017"
MONGO_DATABASE: test_manager
CONFIG_API_URL: http://config-api:8001
# Local lake fixtures for the post-race telemetry viz (mock-lake service).
Quix__Lakehouse__Query__Url: http://mock-lake:8002
Quix__Lakehouse__Query__AuthToken: dev-fixture
Quix__Workspace__Id: ${QUIX_WORKSPACE_ID:-local-dev-workspace}
Quix__Sdk__Token: ${QUIX_TOKEN:-local-dev-token}
Quix__BlobStorage__Connection__Json: '{"provider":"local","local_storage":{"DirectoryPath":"/app/storage"}}'
# Post-race AI summary runner — leave empty to disable end-to-end AI flow.
# Fill via repo-root .env (gitignored). See quix-ai-config/README.md.
Quix__Portal__Api: ${QUIX_PORTAL_API:-https://portal-api.dev.quix.io}
QUIX_TOKEN: ${QUIX_TOKEN:-}
QUIX_AI_POST_RACE_AGENT_ID: ${QUIX_AI_POST_RACE_AGENT_ID:-}
TESTMANAGER_MCP_API_KEY: ${TESTMANAGER_MCP_API_KEY:-}
# Post-race email (F4) — leave empty to keep SMTP disabled (Send → 503).
# Fill via the repo-root .env (gitignored) to test real sends.
SMTP_HOST: ${SMTP_HOST:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USER: ${SMTP_USER:-}
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
SMTP_FROM: ${SMTP_FROM:-}
SMTP_BCC: ${SMTP_BCC:-}
SMTP_STARTTLS: ${SMTP_STARTTLS:-true}
volumes:
- ./test-manager-backend:/app
- ./shared:/app/shared
- backend_storage:/app/storage
depends_on:
mongodb:
condition: service_healthy
config-api:
condition: service_healthy
mock-lake:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 10s
timeout: 5s
retries: 5
# Test Manager Frontend (Next.js)
frontend:
build:
context: ./test-manager-frontend
dockerfile: Dockerfile.dev
container_name: ac-quix-frontend
ports:
- "3000:3000"
environment:
NODE_ENV: development
API_URL: http://backend:8080
NEXT_TELEMETRY_DISABLED: "1"
NEXT_PUBLIC_LOCAL_DEV_MODE: "true"
NEXT_PUBLIC_TELEMETRY_EXPLORER_URL: http://localhost:8000
NEXT_PUBLIC_LAKEHOUSE_UI_URL: ${NEXT_PUBLIC_LAKEHOUSE_UI_URL:-}
NEXT_PUBLIC_LEADERBOARD_UI_URL: ${NEXT_PUBLIC_LEADERBOARD_UI_URL:-}
WATCHPACK_POLLING: "true"
volumes:
- ./test-manager-frontend:/app
- frontend_node_modules:/app/node_modules
- frontend_cache:/app/.next
depends_on:
backend:
condition: service_healthy
volumes:
mongodb_data:
backend_storage:
frontend_node_modules:
frontend_cache:
config_api_data: