version: "3.9"
services:
kafka:
image: confluentinc/cp-kafka:7.2.4
ports:
- "9092:9092" environment:
KAFKA_BROKER_ID: 1
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka:9093,EXTERNAL://127.0.0.1:9092
KAFKA_AUTO_CREATE_TOPICS_ENABLE: true
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_JMX_PORT: 9101
KAFKA_JMX_HOSTNAME: 127.0.0.1
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_NODE_ID: 1
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:29093
KAFKA_LISTENERS: INTERNAL://kafka:9093,CONTROLLER://kafka:29093,EXTERNAL://0.0.0.0:9092
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_LOG_DIRS: /tmp/kraft-combined-logs
volumes:
- ./kafka_update_run.sh:/tmp/update_run.sh
command: 'bash -c ''if [ ! -f /tmp/update_run.sh ]; then echo "ERROR: Did you forget the update_run.sh file that came with this docker-compose.yml file?" && exit 1 ; else /tmp/update_run.sh && /etc/confluent/docker/run ; fi'''
healthcheck:
test: ["CMD", "nc", "-z", "127.0.0.1", "9092"]
interval: 5s
retries: 20
start_period: 8s
schema-registry:
image: confluentinc/cp-schema-registry:7.2.4
hostname: schema-registry
depends_on:
- kafka
ports:
- "8081"
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka:9093
SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 healthcheck:
test: ["CMD", "curl", "--fail", "http://127.0.0.1:8081/subjects"] interval: 1s
retries: 20
start_period: 8s