-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
152 lines (142 loc) · 3.14 KB
/
docker-compose.yml
File metadata and controls
152 lines (142 loc) · 3.14 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
services:
postgres-db:
image: postgres:16-alpine
container_name: local-trade-db
deploy:
resources:
limits:
memory: 128M
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- local-trade-net
env_file:
- .env
k6:
image: grafana/k6:latest
volumes:
- ./performance-tests/scripts:/scripts
command: run /scripts/main-suite.js
networks:
- local-trade-net
profiles:
- testing
rabbitmq:
image: rabbitmq:3.13-management-alpine
container_name: rabbitmq
deploy:
resources:
limits:
memory: 256M
hostname: rabbitmq
ports:
- "5672:5672"
- "15672:15672"
volumes:
- rabbitmq_data:/var/lib/rabbitmq
networks:
- local-trade-net
healthcheck:
test: [ "CMD", "rabbitmq-diagnostics", "check_running" ]
interval: 30s
timeout: 10s
retries: 5
minio-storage:
image: "minio/minio:latest"
container_name: local-trade-minio
deploy:
resources:
limits:
memory: 128M
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
command: server /data --console-address ":9001"
networks:
local-trade-net:
aliases:
- minio
restart: unless-stopped
env_file:
- .env
redis-cache:
image: "redis:7-alpine"
container_name: local-trade-redis
deploy:
resources:
limits:
memory: 64M
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- local-trade-net
restart: unless-stopped
notification-service:
build:
context: .
dockerfile: ./services/notification-service/Dockerfile
container_name: notification-service
deploy:
resources:
limits:
memory: 250M
environment:
SPRING_RABBITMQ_HOST: rabbitmq
depends_on:
rabbitmq:
condition: service_healthy
networks:
- local-trade-net
restart: on-failure
env_file:
- .env
main-api:
build:
context: .
dockerfile: ./services/main-api/Dockerfile
container_name: main-api
deploy:
resources:
limits:
memory: 400M
environment:
SPRING_RABBITMQ_HOST: rabbitmq
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres-db:5432/${DB_NAME}
SPRING_DATASOURCE_USERNAME: ${DB_USER}
SPRING_DATASOURCE_PASSWORD: ${DB_PASSWORD}
REDIS_HOST: redis-cache
REDIS_PORT: 6379
ports:
- "8080:8080"
depends_on:
postgres-db:
condition: service_started
redis-cache:
condition: service_started
rabbitmq:
condition: service_healthy
networks:
- local-trade-net
env_file:
- .env
volumes:
rabbitmq_data:
postgres_data:
redis_data:
minio_data:
networks:
local-trade-net:
driver: bridge