-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
131 lines (126 loc) · 3.52 KB
/
docker-compose.yml
File metadata and controls
131 lines (126 loc) · 3.52 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
services:
# Backend service
backend:
build:
context: .
dockerfile: backend/Dockerfile
container_name: am1_backend
volumes:
- ./backend/app:/app/app
- ./backend/config:/app/config
- ./backend/tests:/app/tests
# - ./.certs:/etc/ssl/certs
- ./.certs/server.crt:/etc/ssl/certs/pi-localhost.crt
- ./.certs/server.key:/etc/ssl/certs/pi-localhost.key
networks:
- am1_network
depends_on:
# kafka:
# condition: service_healthy
postgres:
condition: service_healthy
restart: always
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql+asyncpg://postgres:user@am1_postgres_db:5432/am1
- DEBUG=True
- ENVIRONMENT=development
- KAFKA_BOOTSTRAP_SERVERS=kafka:29092
# - SSL_CERT_FILE=/etc/ssl/certs/pi-localhost.crt
# - SSL_KEY_FILE=/etc/ssl/certs/pi-localhost.key
healthcheck:
test: ["CMD", "curl", "--fail", "http://localhost:8000/api/v1/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 20s
# Frontend service
frontend:
build:
context: .
dockerfile: frontend/Dockerfile
container_name: am1_frontend
volumes:
- ./frontend/src:/app/src # Only mount source code for hot reloading
- ./frontend/public:/app/public
# - ./.certs:/etc/ssl/certs
- ./.certs/server.crt:/etc/ssl/certs/pi-localhost.crt
- ./.certs/server.key:/etc/ssl/certs/pi-localhost.key
networks:
- am1_network
ports:
- "3000:3000"
environment:
#- VITE_API_URL=http://backend:8000
- VITE_API_URL=https://backend:8000
- NODE_ENV=development
- VITE_DEV_SERVER_USE_HTTPS=true
- NODE_EXTRA_CA_CERTS=/etc/ssl/certs/pi-localhost.crt
depends_on:
- backend
# Database service
postgres:
image: postgres:17
container_name: am1_postgres_db
restart: always
networks:
- am1_network
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: user
POSTGRES_DB: am1
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./backend/app/db/migrations/init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d am1"]
interval: 10s
retries: 5
start_period: 20s
# zookeeper:
# image: confluentinc/cp-zookeeper:7.3.0
# container_name: zookeeper
# environment:
# ZOOKEEPER_CLIENT_PORT: 2181
# ZOOKEEPER_TICK_TIME: 2000
# ports:
# - "2181:2181"
#
# kafka:
# image: confluentinc/cp-kafka:7.3.0
# container_name: kafka
# depends_on:
# - zookeeper
# ports:
# - "9092:9092"
# environment:
# KAFKA_BROKER_ID: 1
# KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
# KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
# KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
# KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
# KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
# KAFKA_NUM_PARTITIONS: 3
# networks:
# - am1_network
# rest-proxy:
# image: confluentinc/cp-kafka-rest:latest
# container_name: kafka-rest-proxy
# depends_on:
# - kafka
# ports:
# - "8082:8082"
# environment:
# KAFKA_REST_HOST_NAME: rest-proxy
# KAFKA_REST_BOOTSTRAP_SERVERS: "kafka:9092"
# KAFKA_REST_LISTENERS: "http://0.0.0.0:8082"
# networks:
# - am1_network
volumes:
postgres_data:
networks:
am1_network:
driver: bridge