-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdocker-compose.yml
153 lines (145 loc) · 4.39 KB
/
docker-compose.yml
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
version: "3.8"
services:
postgres-db:
image: postgres
container_name: bank_db
environment:
POSTGRES_DB: bank_db
POSTGRES_HOST_AUTH_METHOD: trust
volumes:
- ../Banka-2-Backend/init-db:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
healthcheck:
test: [ "CMD-SHELL", "pg_isready -U postgres -d bank_db" ]
interval: 30s
timeout: 10s
retries: 5
redis:
image: redis
expose:
- "6379"
container_name: redis
environment:
REDIS_HOST_AUTH_METHOD: trust
ALLOW_EMPTY_PASSWORD: "yes"
ports:
- "6379:6379"
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 30s
timeout: 10s
retries: 5
rabbitmq:
image: rabbitmq:3-management-alpine
container_name: rabbitmq
hostname: my-rabbit-host
ports:
- "15672:15672"
- "5672:5672"
volumes:
- "../Banka-2-Backend/rabbitdata:/var/lib/rabbitmq"
healthcheck:
test: [ "CMD", "rabbitmqctl", "status" ]
interval: 5s
timeout: 20s
retries: 5
bank-service:
build:
context: ${BACKEND_ABSOLUTE_PATH}/bank-service
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/bank-service.Dockerfile
container_name: bank-service
ports:
- "8003:8003"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/bank_db?currentSchema=bank_service_schema
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
depends_on:
postgres-db:
condition: service_healthy
rabbitmq:
condition: service_started
iam-service:
build:
context: ${BACKEND_ABSOLUTE_PATH}/iam-service
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/iam-service.Dockerfile
container_name: iam-service
ports:
- "8000:8000"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/bank_db?currentSchema=iam_service_schema
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
depends_on:
postgres-db:
condition: service_healthy
rabbitmq:
condition: service_started
notification-service:
build:
context: ${BACKEND_ABSOLUTE_PATH}/notification-service
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/notification-service.Dockerfile
container_name: notification-service
ports:
- "8002:8002"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/bank_db?currentSchema=notification_service_schema
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
depends_on: # Conditions for service to start (black magic, don't touch unless you know what you're doing!!!)
rabbitmq:
condition: service_healthy
stock-service:
build:
context: ${BACKEND_ABSOLUTE_PATH}/stock-service
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/stock-service.Dockerfile
container_name: stock-service
ports:
- "8001:8001"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/bank_db?currentSchema=stock_service_schema
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
- SPRING_REDIS_HOST=redis
depends_on:
postgres-db:
condition: service_healthy
rabbitmq:
condition: service_started
redis:
condition: service_started
otc-service:
build:
context: ${BACKEND_ABSOLUTE_PATH}/otc-service
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/otc-service.Dockerfile
container_name: otc-service
ports:
- "8004:8004"
environment:
- SPRING_PROFILES_ACTIVE=dev
- SPRING_DATASOURCE_URL=jdbc:postgresql://postgres-db:5432/bank_db?currentSchema=otc_service_schema
- SPRING_JPA_HIBERNATE_DDL_AUTO=update
depends_on:
postgres-db:
condition: service_healthy
rabbitmq:
condition: service_started
frontend:
build:
context: ${FRONTEND_ABSOLUTE_PATH}/
dockerfile: ${INFRASTRUCTURE_ABSOLUTE_PATH}/images/frontend.Dockerfile
container_name: frontend
ports:
- "80:80"
depends_on:
bank-service:
condition: service_started
iam-service:
condition: service_started
notification-service:
condition: service_started
stock-service:
condition: service_started
otc-service:
condition: service_started