@mojaloop/central-services-stream
Version:
Streaming library code for central services.
84 lines (78 loc) • 2.47 kB
YAML
version: "3.7"
networks:
kafka-net:
name: kafka-net
services:
kafka-provisioning:
container_name: kafka-provisioning
networks:
- kafka-net
image: docker.io/bitnami/kafka:3.4.0
env_file:
- docker.env
depends_on:
- kafka
entrypoint: [ '/bin/sh', '-c' ]
command: |
"
# blocks until kafka is reachable
kafka-topics.sh --bootstrap-server kafka:29092 --list
echo -e 'Creating kafka topics'
kafka-topics.sh --bootstrap-server kafka:29092 --create --if-not-exists --topic test --replication-factor $$KAFKA_REPLICATION_FACTOR --partitions $$KAFKA_PARTITIONS_NUM
echo -e 'Successfully created the following topics:'
kafka-topics.sh --bootstrap-server kafka:29092 --list
"
profiles:
- provisioning
- all
kafka:
networks:
- kafka-net
image: docker.io/bitnami/kafka:3.5
# image: docker.io/bitnami/kafka:3.4.0
container_name: kafka
ports:
- "9092:9092"
environment:
# BITNAMI_DEBUG: "yes"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_ADVERTISED_HOST_NAME: kafka
KAFKA_CFG_LISTENERS: CONTROLLER://:9093,LISTENER_DOCKER://:29092,LISTENER_EXTERN://:9092
KAFKA_CFG_ADVERTISED_LISTENERS: LISTENER_DOCKER://kafka:29092,LISTENER_EXTERN://localhost:9092
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,LISTENER_DOCKER:PLAINTEXT,LISTENER_EXTERN:PLAINTEXT
KAFKA_CFG_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CFG_MESSAGE_MAX_BYTES: 200000000
KAFKA_CFG_NODE_ID: 1
KAFKA_CFG_PROCESS_ROLES: broker,controller
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@127.0.0.1:9093
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_ENABLE_KRAFT: "true"
healthcheck:
test: ["CMD" ,"/opt/bitnami/kafka/bin/kafka-broker-api-versions.sh","--bootstrap-server","kafka:29092"]
timeout: 20s
retries: 10
start_period: 40s
interval: 30s
profiles:
- kafka
- all
## Debug utilities
kafka-console:
image: docker.redpanda.com/redpandadata/console:latest
deploy:
replicas: 1
restart: on-failure
hostname: kafka-console
ports:
- "9080:8080"
networks:
- kafka-net
environment:
- KAFKA_BROKERS=kafka:29092
depends_on:
- kafka
profiles:
- debug
- all