-
Notifications
You must be signed in to change notification settings - Fork 0
/
docker-compose.yml
154 lines (143 loc) · 3.72 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
154
version: "3.5"
networks:
event_driven_commerce:
services:
rabbitmq:
image: rabbitmq:3.8-management
hostname: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
RABBITMQ_DEFAULT_VHOST: /
networks:
- event_driven_commerce
db-customer:
image: postgres:latest
hostname: db-customer
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=customer_svc
ports:
- "5432:5432"
volumes:
- ./configs/customer-init.sql:/docker-entrypoint-initdb.d/init.sql
command: postgres -c checkpoint_timeout=600 -c max_wal_size=4096
networks:
- event_driven_commerce
db-product:
image: postgres:latest
hostname: db-product
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=product_svc
ports:
- "15432:5432"
volumes:
- ./configs/product-init.sql:/docker-entrypoint-initdb.d/init.sql
command: postgres -c checkpoint_timeout=600 -c max_wal_size=4096
networks:
- event_driven_commerce
db-order:
image: postgres:latest
hostname: db-order
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=order_svc
ports:
- "25432:5432"
volumes:
- ./configs/order-init.sql:/docker-entrypoint-initdb.d/init.sql
command: postgres -c checkpoint_timeout=600 -c max_wal_size=4096
networks:
- event_driven_commerce
db-payment:
image: postgres:latest
hostname: db-payment
environment:
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin
- POSTGRES_DB=payment_svc
ports:
- "35432:5432"
volumes:
- ./configs/payment-init.sql:/docker-entrypoint-initdb.d/init.sql
command: postgres -c checkpoint_timeout=600 -c max_wal_size=4096
networks:
- event_driven_commerce
api-gtw:
build:
context: .
dockerfile: ./apps/api-gtw/Dockerfile
hostname: api-gtw
environment:
- PORT=8080
- GRPC_HOST_PRODUCT_SVC=product-svc:50050
- GRPC_HOST_CUSTOMER_SVC=customer-svc:50051
- GRPC_HOST_ORDER_SVC=order-svc:50052
depends_on:
- product-svc
- customer-svc
- order-svc
ports:
- "8080:8080"
networks:
- event_driven_commerce
customer-svc:
build:
context: .
dockerfile: ./apps/customer-svc/Dockerfile
hostname: customer-svc
environment:
- GRPC_PORT=50051
- DATABASE_URL=postgresql://admin:admin@db-customer:5432/customer_svc
- JWT_SECRET="COFFEE_BLEND"
depends_on:
- db-customer
networks:
- event_driven_commerce
product-svc:
build:
context: .
dockerfile: ./apps/product-svc/Dockerfile
hostname: product-svc
environment:
- GRPC_PORT=50050
- DATABASE_URL=postgresql://admin:admin@db-product:5432/product_svc
depends_on:
- db-product
networks:
- event_driven_commerce
order-svc:
build:
context: .
dockerfile: ./apps/order-svc/Dockerfile
hostname: order-svc
environment:
- GRPC_PORT=50052
- GRPC_HOST_PRODUCT_SVC=product-svc:50050
- DATABASE_URL=postgresql://admin:admin@db-order:5432/order_svc
depends_on:
- db-order
- product-svc
networks:
- event_driven_commerce
payment-svc:
build:
context: .
dockerfile: ./apps/payment-svc/Dockerfile
hostname: payment-svc
environment:
- BROKER_URL=amqp://guest:guest@rabbitmq:5672/
- DATABASE_URL=postgresql://admin:admin@db-payment:5432/payment_svc
depends_on:
- rabbitmq
- db-payment
restart: on-failure
networks:
- event_driven_commerce