-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
77 lines (72 loc) · 2.19 KB
/
Copy pathdocker-compose.yml
File metadata and controls
77 lines (72 loc) · 2.19 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
networks:
default:
name: tax-gpt-lite-net
volumes:
neo4j_data:
chroma_data:
services:
frontend:
build:
context: ./frontend
dockerfile: ../docker/Dockerfile.frontend
container_name: tax-gpt-lite-frontend
env_file:
- .env
environment:
- VITE_API_URL=http://127.0.0.1:${API_PORT:-8080}
ports: # expose frontend to the host
- "127.0.0.1:${FRONTEND_PORT:-3000}:${FRONTEND_PORT:-3000}"
depends_on:
- api
# Prod-like: build the static bundle then serve it.
command: sh -lc "npm run build && npm run preview -- --host 0.0.0.0 --port ${FRONTEND_PORT:-3000} --strictPort"
restart: unless-stopped
api:
build:
context: .
dockerfile: ./docker/Dockerfile.api
target: prod
args:
PRELOAD_EMBEDDING: ${PRELOAD_EMBEDDING:-1}
EMBEDDING_MODEL: ${EMBEDDING_MODEL:-BAAI/bge-m3}
container_name: tax-gpt-lite-api
env_file:
- .env
environment:
- CHROMA_HOST=${CHROMA_HOST:-chroma}
- CHROMA_PORT=${CHROMA_PORT:-8000}
- NEO4J_URI=${NEO4J_URI:-bolt://neo4j:7687}
- NEO4J_USERNAME=${NEO4J_USERNAME:-neo4j}
- NEO4J_PASSWORD=${NEO4J_PASSWORD:-neo4jtest}
- API_PORT=${API_PORT:-8080}
- EMBEDDING_MODEL=${EMBEDDING_MODEL:-BAAI/bge-m3}
- EMBEDDING_CACHE_DIR=/opt/embedding_cache
depends_on:
- neo4j
- chroma
ports:
- "127.0.0.1:${API_PORT:-8080}:${API_PORT:-8080}"
volumes:
- ./data:/app/data
command: ["uvicorn", "orchestrator.core.app:app", "--host", "0.0.0.0", "--port", "${API_PORT:-8080}"]
restart: unless-stopped
neo4j:
build:
context: ./docker
dockerfile: Dockerfile.neo4j
container_name: tax-gpt-lite-neo4j
# Use docker-compose.dev.yml to expose the Neo4j Web UI / Bolt to host.
environment:
NEO4J_AUTH: ${NEO4J_USERNAME:-neo4j}/${NEO4J_PASSWORD:-neo4jtest}
volumes:
- neo4j_data:/data
restart: unless-stopped
chroma:
build:
context: ./docker
dockerfile: Dockerfile.chroma
container_name: tax-gpt-lite-chroma
# Use docker-compose.dev.yml to expose the Chroma API to host.
volumes:
- chroma_data:/data
restart: unless-stopped