-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
168 lines (159 loc) · 4.84 KB
/
docker-compose.yml
File metadata and controls
168 lines (159 loc) · 4.84 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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
version: '3.8'
services:
# ===================
# DATABASE
# ===================
postgres:
image: postgres:15-alpine
container_name: financeflow-postgres
environment:
POSTGRES_USER: financeflow
POSTGRES_PASSWORD: financeflow_secret
POSTGRES_DB: financeflow
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./backend/init-db.sql:/docker-entrypoint-initdb.d/init-db.sql:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U financeflow"]
interval: 10s
timeout: 5s
retries: 5
networks:
- financeflow-network
# ===================
# BACKEND SERVICES
# ===================
auth-service:
build:
context: ./backend
dockerfile: auth-service/Dockerfile
container_name: financeflow-auth
environment:
SPRING_PROFILES_ACTIVE: docker
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/financeflow
SPRING_DATASOURCE_USERNAME: financeflow
SPRING_DATASOURCE_PASSWORD: financeflow_secret
JWT_SECRET: ${JWT_SECRET:-eW91ci1zdXBlci1zZWNyZXQtand0LWtleS10aGF0LWlzLWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=}
JWT_EXPIRATION: 3600000
ports:
- "8081:8081"
depends_on:
postgres:
condition: service_healthy
networks:
- financeflow-network
restart: unless-stopped
account-service:
build:
context: ./backend
dockerfile: account-service/Dockerfile
container_name: financeflow-account
environment:
SPRING_PROFILES_ACTIVE: docker
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/financeflow
SPRING_DATASOURCE_USERNAME: financeflow
SPRING_DATASOURCE_PASSWORD: financeflow_secret
AUTH_SERVICE_URL: http://auth-service:8081
JWT_SECRET: ${JWT_SECRET:-eW91ci1zdXBlci1zZWNyZXQtand0LWtleS10aGF0LWlzLWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=}
ports:
- "8082:8082"
depends_on:
postgres:
condition: service_healthy
auth-service:
condition: service_started
networks:
- financeflow-network
restart: unless-stopped
transaction-service:
build:
context: ./backend
dockerfile: transaction-service/Dockerfile
container_name: financeflow-transaction
environment:
SPRING_PROFILES_ACTIVE: docker
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/financeflow
SPRING_DATASOURCE_USERNAME: financeflow
SPRING_DATASOURCE_PASSWORD: financeflow_secret
AUTH_SERVICE_URL: http://auth-service:8081
ACCOUNT_SERVICE_URL: http://account-service:8082
JWT_SECRET: ${JWT_SECRET:-eW91ci1zdXBlci1zZWNyZXQtand0LWtleS10aGF0LWlzLWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=}
ports:
- "8083:8083"
depends_on:
postgres:
condition: service_healthy
account-service:
condition: service_started
networks:
- financeflow-network
restart: unless-stopped
analytics-service:
build:
context: ./backend
dockerfile: analytics-service/Dockerfile
container_name: financeflow-analytics
environment:
SPRING_PROFILES_ACTIVE: docker
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/financeflow
SPRING_DATASOURCE_USERNAME: financeflow
SPRING_DATASOURCE_PASSWORD: financeflow_secret
AUTH_SERVICE_URL: http://auth-service:8081
TRANSACTION_SERVICE_URL: http://transaction-service:8083
JWT_SECRET: ${JWT_SECRET:-eW91ci1zdXBlci1zZWNyZXQtand0LWtleS10aGF0LWlzLWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=}
ports:
- "8084:8084"
depends_on:
postgres:
condition: service_healthy
transaction-service:
condition: service_started
networks:
- financeflow-network
restart: unless-stopped
api-gateway:
build:
context: ./backend
dockerfile: api-gateway/Dockerfile
container_name: financeflow-gateway
environment:
SPRING_PROFILES_ACTIVE: docker
AUTH_SERVICE_URL: http://auth-service:8081
ACCOUNT_SERVICE_URL: http://account-service:8082
TRANSACTION_SERVICE_URL: http://transaction-service:8083
ANALYTICS_SERVICE_URL: http://analytics-service:8084
JWT_SECRET: ${JWT_SECRET:-eW91ci1zdXBlci1zZWNyZXQtand0LWtleS10aGF0LWlzLWF0LWxlYXN0LTI1Ni1iaXRzLWxvbmc=}
ports:
- "8080:8080"
depends_on:
- auth-service
- account-service
- transaction-service
- analytics-service
networks:
- financeflow-network
restart: unless-stopped
# ===================
# FRONTEND
# ===================
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: financeflow-frontend
environment:
REACT_APP_API_URL: http://localhost:8080
ports:
- "3000:80"
depends_on:
- api-gateway
networks:
- financeflow-network
restart: unless-stopped
volumes:
postgres_data:
networks:
financeflow-network:
driver: bridge