Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
79 lines (74 loc) · 2.08 KB
/
Copy pathdocker-compose.yml
File metadata and controls
79 lines (74 loc) · 2.08 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
services:
# PostgreSQL Database Service
db:
image: pgvector/pgvector:pg16
container_name: ai-reviewer-db
restart: unless-stopped
environment:
POSTGRES_DB: ai_reviewer
POSTGRES_USER: ai_reviewer_user
POSTGRES_PASSWORD: ai_reviewer_password
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ai_reviewer_user -d ai_reviewer"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- app_network
# Backend Application Service
api:
build:
context: .
dockerfile: Dockerfile
container_name: ai-reviewer-api
restart: unless-stopped
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://ai_reviewer_user:ai_reviewer_password@db:5432/ai_reviewer
env_file:
- .env
volumes:
- ./uploads:/app/uploads
depends_on:
- db
networks:
- app_network
# Frontend Application Service
app:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: ai-reviewer-app
restart: unless-stopped
ports:
- "3000:3000"
# The image leaves out .env files, so Auth.js gets its settings here, from the
# root .env: the same keys k8s/frontend.yaml passes. AUTH_URL is the browser's
# address for the app; without it, production Auth.js rejects every request.
environment:
- NODE_ENV=production
- API_INTERNAL_URL=http://api:8000
- AUTH_URL=http://localhost:3000
- AUTH_SECRET=${AUTH_SECRET:-}
- AUTH_GOOGLE_ID=${AUTH_GOOGLE_ID:-}
- AUTH_GOOGLE_SECRET=${AUTH_GOOGLE_SECRET:-}
- AUTH_MICROSOFT_ENTRA_ID_ID=${AUTH_MICROSOFT_ENTRA_ID_ID:-}
- AUTH_MICROSOFT_ENTRA_ID_SECRET=${AUTH_MICROSOFT_ENTRA_ID_SECRET:-}
- AUTH_MICROSOFT_ENTRA_ID_ISSUER=${AUTH_MICROSOFT_ENTRA_ID_ISSUER:-}
depends_on:
- api
networks:
- app_network
volumes:
postgres_data:
driver: local
networks:
app_network:
driver: bridge