datahub/docker/kafka/docker-compose.yml
Albert Franzi 5ac098fbdd
feature: 🐳 - Allow to store Quickstart dockers data in a folder for persistance (#1568)
* feature: 🐳 - Allow to store Quickstart dockers data in a folder for persistance

* bump: Update Kafka dockers to 5.4.0

* feature: 🐳 - Add kafka-topics-ui docker to the kafka docker folder

* refactor: Provide a quickstart.sh script to start all dockers
2020-03-23 13:43:51 -07:00

111 lines
3.4 KiB
YAML

---
version: '3.5'
services:
zookeeper:
image: confluentinc/cp-zookeeper:5.4.0
hostname: zookeeper
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
broker:
image: confluentinc/cp-kafka:5.4.0
hostname: broker
container_name: broker
depends_on:
- zookeeper
ports:
- "29092:29092"
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
# This "container" is a workaround to pre-create topics
kafka-setup:
image: confluentinc/cp-kafka:5.4.0
hostname: kafka-setup
container_name: kafka-setup
depends_on:
- broker
- schema-registry
command: "bash -c 'echo Waiting for Kafka to be ready... && \
cub kafka-ready -b broker:29092 1 60 && \
kafka-topics --create --if-not-exists --zookeeper zookeeper:2181 --partitions 1 --replication-factor 1 --topic MetadataAuditEvent && \
kafka-topics --create --if-not-exists --zookeeper zookeeper:2181 --partitions 1 --replication-factor 1 --topic MetadataChangeEvent && \
kafka-topics --create --if-not-exists --zookeeper zookeeper:2181 --partitions 1 --replication-factor 1 --topic FailedMetadataChangeEvent'"
environment:
# The following settings are listed here only to satisfy the image's requirements.
# We override the image's `command` anyways, hence this container will not start a broker.
KAFKA_BROKER_ID: ignored
KAFKA_ZOOKEEPER_CONNECT: ignored
kafka-rest-proxy:
image: confluentinc/cp-kafka-rest:5.4.0
hostname: kafka-rest-proxy
ports:
- "8082:8082"
environment:
KAFKA_REST_LISTENERS: http://0.0.0.0:8082/
KAFKA_REST_SCHEMA_REGISTRY_URL: http://schema-registry:8081/
KAFKA_REST_HOST_NAME: kafka-rest-proxy
KAFKA_REST_BOOTSTRAP_SERVERS: PLAINTEXT://broker:29092
depends_on:
- zookeeper
- broker
- schema-registry
kafka-topics-ui:
image: landoop/kafka-topics-ui:0.9.4
hostname: kafka-topics-ui
ports:
- "18000:8000"
environment:
KAFKA_REST_PROXY_URL: "http://kafka-rest-proxy:8082/"
PROXY: "true"
depends_on:
- zookeeper
- broker
- schema-registry
- kafka-rest-proxy
schema-registry:
image: confluentinc/cp-schema-registry:5.4.0
hostname: schema-registry
container_name: schema-registry
depends_on:
- zookeeper
- broker
ports:
- "8081:8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: 'zookeeper:2181'
schema-registry-ui:
image: landoop/schema-registry-ui:latest
container_name: schema-registry-ui
hostname: schema-registry-ui
ports:
- "8000:8000"
environment:
SCHEMAREGISTRY_URL: 'http://schema-registry:8081'
ALLOW_GLOBAL: 'true'
ALLOW_TRANSITIVE: 'true'
ALLOW_DELETION: 'true'
READONLY_MODE: 'true'
PROXY: 'true'
depends_on:
- schema-registry
networks:
default:
name: datahub_network