mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-15 17:55:08 +01:00
94 lines
3.4 KiB
YAML
94 lines
3.4 KiB
YAML
|
|
version: '2.1'
|
|
|
|
services:
|
|
zoo1:
|
|
image: confluentinc/cp-zookeeper:7.2.0
|
|
hostname: zoo1
|
|
container_name: zoo1
|
|
ports:
|
|
- "2181:2181"
|
|
environment:
|
|
ZOOKEEPER_CLIENT_PORT: 2181
|
|
ZOOKEEPER_SERVER_ID: 1
|
|
ZOOKEEPER_SERVERS: zoo1:2888:3888
|
|
|
|
|
|
kafka1:
|
|
image: confluentinc/cp-kafka:7.2.0
|
|
hostname: kafka1
|
|
container_name: kafka1
|
|
ports:
|
|
- "9092:9092"
|
|
- "29092:29092"
|
|
environment:
|
|
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka1:19092,EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092,DOCKER://host.docker.internal:29092
|
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,DOCKER:PLAINTEXT
|
|
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
|
|
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
|
|
KAFKA_BROKER_ID: 1
|
|
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
|
|
KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.authorizer.AclAuthorizer
|
|
KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
|
|
depends_on:
|
|
- zoo1
|
|
|
|
kafka2:
|
|
image: confluentinc/cp-kafka:7.2.0
|
|
hostname: kafka2
|
|
container_name: kafka2
|
|
ports:
|
|
- "9093:9093"
|
|
- "29093:29093"
|
|
environment:
|
|
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka2:19093,EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9093,DOCKER://host.docker.internal:29093
|
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,DOCKER:PLAINTEXT
|
|
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
|
|
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
|
|
KAFKA_BROKER_ID: 2
|
|
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
|
|
KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.authorizer.AclAuthorizer
|
|
KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
|
|
depends_on:
|
|
- zoo1
|
|
|
|
|
|
kafka3:
|
|
image: confluentinc/cp-kafka:7.2.0
|
|
hostname: kafka3
|
|
container_name: kafka3
|
|
ports:
|
|
- "9094:9094"
|
|
- "29094:29094"
|
|
environment:
|
|
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka3:19094,EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9094,DOCKER://host.docker.internal:29094
|
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,DOCKER:PLAINTEXT
|
|
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
|
|
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
|
|
KAFKA_BROKER_ID: 3
|
|
KAFKA_LOG4J_LOGGERS: "kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO"
|
|
KAFKA_AUTHORIZER_CLASS_NAME: kafka.security.authorizer.AclAuthorizer
|
|
KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND: "true"
|
|
depends_on:
|
|
- zoo1
|
|
|
|
init-kafka:
|
|
image: confluentinc/cp-kafka:7.2.0
|
|
depends_on:
|
|
- kafka1
|
|
- kafka2
|
|
- kafka3
|
|
entrypoint: [ '/bin/sh', '-c' ]
|
|
command: |
|
|
"
|
|
# blocks until kafka is reachable
|
|
kafka-topics --bootstrap-server kafka1:19092 --list
|
|
|
|
echo -e 'Creating kafka topics'
|
|
kafka-topics --bootstrap-server kafka1:19092 --create --if-not-exists --topic pageview --replication-factor 3 --partitions 3
|
|
kafka-topics --bootstrap-server kafka2:19093 --create --if-not-exists --topic event --replication-factor 3 --partitions 3
|
|
kafka-topics --bootstrap-server kafka3:19094 --create --if-not-exists --topic session --replication-factor 3 --partitions 3
|
|
|
|
echo -e 'Successfully created the following topics:'
|
|
kafka-topics --bootstrap-server kafka1:19092 --list
|
|
" |