-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yaml
127 lines (119 loc) · 4.48 KB
/
docker-compose.yaml
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
version: '3'
services:
kafka:
container_name: kafka
image: confluentinc/cp-kafka:7.0.1
ports:
- "9092:29092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: 'CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT'
KAFKA_ADVERTISED_LISTENERS: 'PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092'
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_PROCESS_ROLES: 'broker,controller'
KAFKA_NODE_ID: 1
KAFKA_CONTROLLER_QUORUM_VOTERS: '1@kafka:9093'
KAFKA_LISTENERS: 'PLAINTEXT://kafka:9092,CONTROLLER://kafka:9093,PLAINTEXT_HOST://localhost:29092'
KAFKA_INTER_BROKER_LISTENER_NAME: 'PLAINTEXT'
KAFKA_CONTROLLER_LISTENER_NAMES: 'CONTROLLER'
KAFKA_LOG_DIRS: '/tmp/kraft-combined-logs'
KAFKA_HEAP_OPTS: "-Xmx256M"
volumes:
- kafka_data:/kafka/data
command:
- bash
- -c
- sed -i '/KAFKA_ZOOKEEPER_CONNECT/d' /etc/confluent/docker/configure && sed -i 's/cub zk-ready/echo ignore zk-ready/' /etc/confluent/docker/ensure && echo 'kafka-storage format --ignore-formatted -t $$(kafka-storage random-uuid) -c /etc/kafka/kafka.properties' >> /etc/confluent/docker/ensure && /etc/confluent/docker/run
schema-registry:
container_name: schema-registry
image: confluentinc/cp-schema-registry:7.0.1
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka:9092
SCHEMA_REGISTRY_HEAP_OPTS: "-Xmx128M"
depends_on:
- kafka
mysql:
container_name: mysql
image: mysql:8.0.27
ports:
- 3006:3006
environment:
MYSQL_ROOT_PASSWORD: kafkademo
volumes:
- ./mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- ./mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql
command: ['mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci']
connect:
container_name: connect
build: ./connect
ports:
- 8083:8083
depends_on:
- kafka
- schema-registry
environment:
KAFKA_HEAP_OPTS: "-Xmx256M"
CONNECT_BOOTSTRAP_SERVERS: kafka:9092
CONNECT_CONFIG_STORAGE_TOPIC: connect-configs
CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1
CONNECT_OFFSET_STORAGE_TOPIC: connect-offsets
CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1
CONNECT_STATUS_STORAGE_TOPIC: connect-status
CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1
CONNECT_GROUP_ID: 100
CONNECT_REST_ADVERTISED_HOST_NAME: connect
CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_SCHEMA_REGISTRY_URL: http://schema-registry:8081
CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
CONNECT_INTERNAL_KEY_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_INTERNAL_VALUE_CONVERTER: org.apache.kafka.connect.json.JsonConverter
CONNECT_PLUGIN_PATH: /usr/share/java,/usr/share/confluent-hub-components
postgres:
container_name: postgres
image: postgres:14.1
environment:
POSTGRES_PASSWORD: kafkademo
volumes:
- ./postgres/init.sql:/docker-entrypoint-initdb.d/setup.sql
mongo:
container_name: mongo
image: mongo:5.0.5
ports:
- 27017:27017
volumes:
- ./mongo/init.sh:/docker-entrypoint-initdb.d/mongo-init.sh
- ./mongo/keyfile.pem:/tmp/keyfile.pem.orig:ro
entrypoint:
- bash
- -c
- |
cp /tmp/keyfile.pem.orig /tmp/keyfile.pem
chmod 400 /tmp/keyfile.pem
chown 999:999 /tmp/keyfile.pem
exec docker-entrypoint.sh $$@
command: ["mongod", "--bind_ip", "0.0.0.0", "--replSet", "rs0", "--auth", "--keyFile", "/tmp/keyfile.pem"]
elasticsearch:
container_name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.3
ports:
- 9200:9200
environment:
discovery.type: single-node
ES_JAVA_OPTS: '-Xmx256M'
ksql:
container_name: ksql
image: confluentinc/cp-ksql-server:5.4.6
environment:
KSQL_HEAP_OPTS: '-Xmx256M'
KSQL_BOOTSTRAP_SERVERS: kafka:9092
KSQL_LISTENERS: http://0.0.0.0:8088/
KSQL_KSQL_SERVICE_ID: ksql_service
KSQL_KSQL_SCHEMA_REGISTRY_URL: http://schema-registry:8081
volumes:
kafka_data: {}