-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocker-compose.yml
152 lines (138 loc) · 4.03 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
version: '3'
services:
#___________________________________________________________________________________Databases
mongo:
image: mongo:3.6.18
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
ports:
- "27017:27017"
postgres:
build: ./order-golang/postgres/
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: db
ports:
- "5432:5432"
couchdb:
image: couchdb
ports:
- "5984:5984"
- '1234:1234'
- '4369:4369'
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: admin
#___________________________________________________________________________________broker
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
hostname: zookeeper
kafka:
image: wurstmeister/kafka
command: [start-kafka.sh]
ports:
- "9092:9092"
hostname: kafka
environment:
KAFKA_CREATE_TOPICS: "ORDER_CREATE_EVENT:1:1,ORDER_CREATE_FAILURE_EVENT:1:1,ORDER_CONCLUDE_EVENT:1:1,ORDER_BILLED_EVENT:1:1,ORDER_BILLED_FAILURE_EVENT:1:1,ORDER_DELIVERED_EVENT:1:1,ORDER_DELIVERED_FAILURE_EVENT:1:1,INFRA_EVENT:1:1"
KAFKA_ADVERTISED_HOST_NAME: kafka # docker-machine ip
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_PORT: 9092
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- "zookeeper"
kafdrop:
image: obsidiandynamics/kafdrop
ports:
- "9000:9000"
environment:
KAFKA_BROKERCONNECT: kafka:9092
depends_on:
- kafka
#___________________________________________________________________________________ Applications
payment_service:
build: ./payment-python-fastapi/payment-service/
working_dir: /app
depends_on:
- kafka
- couchdb
environment:
DATABASE: http://admin:admin@couchdb:5984/
MESSAGE_BROKER: kafka:9092
TOPIC_SUCCESS: ORDER_BILLED_EVENT
TOPIC_FAILURE: ORDER_BILLED_FAILURE_EVENT
TOPIC_TRIGGER: ORDER_CREATE_EVENT
TOPIC_COMPENSATION_TRIGGER: ORDER_CREATE_FAILURE_EVENT
TOPIC_INFRA: INFRA_EVENT
LOG_LEVEL: debug
PYTHONUNBUFFERED: 1
WORKERS_PER_CORE: 4
MAX_WORKERS: 1
TIMEOUT: 30
GRACEFUL_TIMEOUT: 30
KEEP_ALIVE: 5
delivery_service:
build: ./delivery-node-express/delivery-service/
environment:
- "DATABASE=mongodb://admin:admin@mongo:27017/db?connectTimeoutMS=200000&authSource=admin"
- "MESSAGE_BROKER=kafka:9092"
- "TOPIC_SUCCESS=ORDER_DELIVERED_EVENT"
- "TOPIC_FAILURE=ORDER_DELIVERED_FAILURE_EVENT"
- "TOPIC_TRIGGER=ORDER_BILLED_EVENT"
- "TOPIC_INFRA=INFRA_EVENT"
depends_on:
- mongo
- kafka
order_service:
build: ./order-golang/order-service/
environment:
DATABASE: host=postgres port=5432 user=admin password=admin dbname=db sslmode=disable
MESSAGE_BROKER: kafka:9092
TOPIC_SUCCESS: ORDER_CREATE_EVENT
TOPIC_CONCLUDE: ORDER_CONCLUDE_EVENT
TOPIC_FAILURE: ORDER_CREATE_FAILURE_EVENT
TOPIC_TRIGGER: ORDER_BILLED_EVENT
TOPIC_COMPENSATION_TRIGGER: ORDER_BILLED_FAILURE_EVENT
TOPIC_INFRA: INFRA_EVENT
ports:
- "8080:8080"
depends_on:
- kafka
- postgres
#___________________________________________________________________________________ WEB
web:
build: ./front-saga-circuit/front/
ports:
- 80:80
environment:
MESSAGE_BROKER: kafka:9092
SOCKET: bff:5000
depends_on:
- bff
bff:
build: ./bff-kafka-observer/bff/
ports:
- 5000:5000
environment:
MESSAGE_BROKER: kafka:9092
OBSERVER: >
ORDER_CREATE_EVENT
ORDER_CONCLUDE_EVENT
ORDER_CREATE_FAILURE_EVENT
ORDER_BILLED_EVENT
ORDER_BILLED_FAILURE_EVENT
ORDER_DELIVERED_EVENT
ORDER_DELIVERED_FAILURE_EVENT
INFRA_EVENT
depends_on:
- kafka
networks:
compose-network:
driver: bridge
payment-network:
driver: bridge