-
Notifications
You must be signed in to change notification settings - Fork 2
/
docker-compose.yml
100 lines (98 loc) · 2.98 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
version: '3'
services:
zookeeper-1:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- 22181:2181
zookeeper-2:
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- 32181:2181
kafka-1:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper-1
- zookeeper-2
ports:
- 29092:29092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:9092,PLAINTEXT_HOST://localhost:29092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
kafka-2:
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper-1
- zookeeper-2
ports:
- 39092:39092
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-2:9092,PLAINTEXT_HOST://localhost:39092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
publisher_app:
build:
context: ./kafka-publisher
ports:
- 8080:8080
depends_on:
- kafka-1
- kafka-2
environment:
kafka.wages-topic.bootstrap-address: kafka-1:9092,kafka-2:9092
kafka.wages-topic.name: wages-docker
kafka.wages-topic.partitions: 2
kafka.wages-topic.replication-factor: 2
server.port: 8080
links:
- kafka-1:kafka-1
- kafka-2:kafka-2
consumer_app:
build:
context: ./kafka-consumer
ports:
- 8070:8070
depends_on:
- kafka-1
- kafka-2
- consumer_app_db
environment:
kafka.wages-topic.bootstrap-address: kafka-1:9092,kafka-2:9092
spring.datasource.url: jdbc:mysql://consumer_app_db:3306/db
kafka.wages-topic.name: wages-docker
kafka.wages-topic.partitions: 2
kafka.wages-topic.replication-factor: 2
kafka.wages-topic.group-id: wages-consumer-docker
wage.tax.income-tax-percent: 10
spring.liquibase.enabled: true
spring.liquibase.change-log: classpath:db/changelog/db.changelog-master.xml
spring.liquibase.user: root
spring.liquibase.password: root
spring.datasource.username: consumer_app
spring.datasource.password: randompassword
spring.datasource.driver-class-name: com.mysql.jdbc.Driver
links:
- kafka-1:kafka-1
- kafka-2:kafka-2
consumer_app_db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: admin
MYSQL_PASSWORD: admin
MYSQL_DATABASE: db
ports:
- '3306:3306'