59 lines
1.7 KiB
YAML
59 lines
1.7 KiB
YAML
services:
|
||
postgres:
|
||
image: postgres:18
|
||
container_name: todo-postgres
|
||
environment:
|
||
POSTGRES_USER: todo
|
||
POSTGRES_PASSWORD: todo
|
||
POSTGRES_DB: todo
|
||
ports:
|
||
- "5432:5432"
|
||
volumes:
|
||
- ./data/pgsql:/var/lib/postgresql
|
||
|
||
redis:
|
||
image: redis:8.4
|
||
container_name: todo-redis
|
||
ports:
|
||
- "6379:6379"
|
||
volumes:
|
||
- ./data/redis:/data
|
||
|
||
kafka:
|
||
image: apache/kafka:4.1.1
|
||
container_name: kafka
|
||
ports:
|
||
- "29092:29092"
|
||
environment:
|
||
# KRaft: broker + controller
|
||
KAFKA_NODE_ID: "1"
|
||
KAFKA_PROCESS_ROLES: "broker,controller"
|
||
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka:9093"
|
||
|
||
# listeners
|
||
KAFKA_LISTENERS: "PLAINTEXT://0.0.0.0:9092,PLAINTEXT_HOST://0.0.0.0:29092,CONTROLLER://0.0.0.0:9093"
|
||
# 容器内访问使用 kafka:9092,本机访问使用 localhost:29092
|
||
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092,PLAINTEXT_HOST://localhost:29092"
|
||
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,CONTROLLER:PLAINTEXT"
|
||
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
|
||
KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
|
||
|
||
# 单节点开发用
|
||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: "1"
|
||
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: "1"
|
||
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: "1"
|
||
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: "0"
|
||
volumes:
|
||
- ./data/kafka:/var/lib/kafka/data
|
||
|
||
kafka-ui:
|
||
image: provectuslabs/kafka-ui:latest
|
||
container_name: todo-kafka-ui
|
||
ports:
|
||
- "8081:8080"
|
||
environment:
|
||
KAFKA_CLUSTERS_0_NAME: local
|
||
KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka:9092
|
||
depends_on:
|
||
- kafka
|