145 lines
4.1 KiB
YAML
145 lines
4.1 KiB
YAML
name: development
|
|
|
|
networks:
|
|
develop:
|
|
name: develop
|
|
external: true
|
|
|
|
volumes:
|
|
cassandra:
|
|
influx-config:
|
|
influx-data:
|
|
postgres:
|
|
redis:
|
|
kafka:
|
|
|
|
services:
|
|
|
|
influxdb:
|
|
image: influxdb:2.7.12-alpine
|
|
container_name: InfluxDB
|
|
restart: unless-stopped
|
|
environment:
|
|
DOCKER_INFLUXDB_INIT_MODE: setup
|
|
DOCKER_INFLUXDB_INIT_USERNAME: influx
|
|
DOCKER_INFLUXDB_INIT_PASSWORD: password
|
|
DOCKER_INFLUXDB_INIT_ADMIN_TOKEN: influxdbToken==
|
|
DOCKER_INFLUXDB_INIT_ORG: hlaeja_ltd
|
|
DOCKER_INFLUXDB_INIT_BUCKET: device-data
|
|
networks:
|
|
- develop
|
|
ports:
|
|
- 8086:8086
|
|
volumes:
|
|
- influx-data:/var/lib/influxdb2
|
|
- influx-config:/etc/influxdb2
|
|
|
|
postgres:
|
|
image: postgres:17.5-alpine
|
|
container_name: PostgreSQL
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD : password
|
|
ports:
|
|
- 5432:5432
|
|
networks:
|
|
- develop
|
|
volumes:
|
|
- postgres:/var/lib/postgresql/data
|
|
|
|
cassandra:
|
|
image: cassandra:5.0.4
|
|
container_name: Cassandra
|
|
restart: unless-stopped
|
|
environment:
|
|
CASSANDRA_USER: cassandra
|
|
CASSANDRA_PASSWORD: password
|
|
networks:
|
|
- develop
|
|
ports:
|
|
- 9042:9042
|
|
volumes:
|
|
- cassandra:/var/lib/cassandra
|
|
|
|
redis:
|
|
image: redis:8.0.3-alpine
|
|
container_name: Redis
|
|
restart: unless-stopped
|
|
environment:
|
|
REDIS_PASSWORD: password
|
|
networks:
|
|
- develop
|
|
ports:
|
|
- 6379:6379
|
|
volumes:
|
|
- redis:/data
|
|
|
|
kafka:
|
|
image: bitnami/kafka:latest
|
|
container_name: Kafka
|
|
restart: unless-stopped
|
|
ports:
|
|
- 9091:9091
|
|
environment:
|
|
# ---- KRaft single-node (broker + controller) ----
|
|
- KAFKA_ENABLE_KRAFT=yes
|
|
- KAFKA_CFG_PROCESS_ROLES=broker,controller
|
|
- KAFKA_CFG_NODE_ID=1
|
|
- KAFKA_KRAFT_CLUSTER_ID=Q1BGMDAwMDAwMDAwMDAwMA
|
|
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
|
|
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093
|
|
|
|
# ---- Listeners ----
|
|
# Bind all, three names: INTERNAL (cluster+in-docker clients), EXTERNAL (host clients), CONTROLLER (KRaft)
|
|
- KAFKA_CFG_LISTENERS=INTERNAL://:9092,EXTERNAL://:9091,CONTROLLER://:9093
|
|
# How clients discover us:
|
|
- KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka:9092,EXTERNAL://localhost:9091
|
|
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,INTERNAL:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
|
|
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL
|
|
|
|
# ---- SASL/PLAIN (no TLS) ----
|
|
# Enable PLAIN globally and for both listeners
|
|
- KAFKA_CFG_SASL_ENABLED_MECHANISMS=PLAIN
|
|
- KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN
|
|
- KAFKA_CFG_LISTENER_NAME_INTERNAL_SASL_ENABLED_MECHANISMS=PLAIN
|
|
- KAFKA_CFG_LISTENER_NAME_EXTERNAL_SASL_ENABLED_MECHANISMS=PLAIN
|
|
|
|
# Users (Bitnami helper vars wire JAAS for you)
|
|
- KAFKA_CLIENT_USERS=kafka
|
|
- KAFKA_CLIENT_PASSWORDS=password
|
|
- KAFKA_INTER_BROKER_USER=broker
|
|
- KAFKA_INTER_BROKER_PASSWORD=password
|
|
|
|
# Dev-friendly defaults
|
|
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
|
|
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=1
|
|
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=1
|
|
- KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR=1
|
|
- KAFKA_HEAP_OPTS=-Xms512m -Xmx512m
|
|
volumes:
|
|
- kafka:/bitnami/kafka
|
|
networks:
|
|
- develop
|
|
|
|
kafka-ui:
|
|
image: provectuslabs/kafka-ui:latest
|
|
container_name: KafkaUi
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- kafka
|
|
ports:
|
|
- "9090:8080"
|
|
environment:
|
|
# Optional: allow adding clusters dynamically in UI
|
|
- DYNAMIC_CONFIG_ENABLED=true
|
|
|
|
# First cluster: local Docker Kafka
|
|
- KAFKA_CLUSTERS_0_NAME=local
|
|
- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka:9092
|
|
- KAFKA_CLUSTERS_0_PROPERTIES_SECURITY_PROTOCOL=SASL_PLAINTEXT
|
|
- KAFKA_CLUSTERS_0_PROPERTIES_SASL_MECHANISM=PLAIN
|
|
- KAFKA_CLUSTERS_0_PROPERTIES_SASL_JAAS_CONFIG=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="password";
|
|
networks:
|
|
- develop
|