|
| 1 | +services: |
| 2 | + kafka: |
| 3 | + image: apache/kafka:latest |
| 4 | + hostname: kafka |
| 5 | + container_name: kafka |
| 6 | + ports: |
| 7 | + - "9092:9092" |
| 8 | + - "9093:9093" |
| 9 | + environment: |
| 10 | + # KRaft settings |
| 11 | + KAFKA_NODE_ID: 1 |
| 12 | + KAFKA_PROCESS_ROLES: broker,controller |
| 13 | + KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9094 |
| 14 | + KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER |
| 15 | + |
| 16 | + # Listener configuration |
| 17 | + KAFKA_LISTENERS: SASL_PLAINTEXT://0.0.0.0:9092,PLAINTEXT://0.0.0.0:9093,CONTROLLER://0.0.0.0:9094 |
| 18 | + KAFKA_ADVERTISED_LISTENERS: SASL_PLAINTEXT://localhost:9092,PLAINTEXT://localhost:9093 |
| 19 | + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: SASL_PLAINTEXT:SASL_PLAINTEXT,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT |
| 20 | + KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT |
| 21 | + |
| 22 | + # SASL/SCRAM configuration |
| 23 | + KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: SCRAM-SHA-512 |
| 24 | + KAFKA_SASL_ENABLED_MECHANISMS: SCRAM-SHA-512 |
| 25 | + |
| 26 | + # Dynamic topic creation |
| 27 | + KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" |
| 28 | + |
| 29 | + # Compression settings |
| 30 | + KAFKA_COMPRESSION_TYPE: snappy |
| 31 | + |
| 32 | + # Log settings |
| 33 | + KAFKA_LOG_DIRS: /tmp/kraft-combined-logs |
| 34 | + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 |
| 35 | + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 |
| 36 | + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 |
| 37 | + |
| 38 | + # JAAS configuration for SASL |
| 39 | + KAFKA_OPTS: "-Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf" |
| 40 | + |
| 41 | + volumes: |
| 42 | + - ./kafka_config/kafka-startup.sh:/tmp/kafka-startup.sh:ro,z |
| 43 | + - ./kafka_config/kafka_server_jaas.conf:/etc/kafka/kafka_server_jaas.conf:ro,z |
| 44 | + tmpfs: |
| 45 | + - /tmp/kraft-combined-logs:uid=1000,gid=1000 |
| 46 | + command: ["/bin/bash", "/tmp/kafka-startup.sh"] |
| 47 | + healthcheck: |
| 48 | + test: ["CMD", "/opt/kafka/bin/kafka-broker-api-versions.sh", "--bootstrap-server", "localhost:9093"] |
| 49 | + interval: 10s |
| 50 | + timeout: 10s |
| 51 | + retries: 5 |
| 52 | + start_period: 30s |
0 commit comments