- 新增 ws.EventBus 接口与 RedisBus 实现;Hub 五类广播改为发布信封、各节点订阅后本地投递 - 单实例不设 REDIS_ADDR 保持进程内直投;Redis 不可用时自动兜底本地投递 - config 新增 REDIS_ADDR/REDIS_PASSWORD/REDIS_DB;dev compose 增加 --profile redis (6380) - prod compose 与 .env.prod.example 增加多副本配置说明;README 更新已知边界 - 已用双实例 + 真实 Redis 实测跨节点推送;新增总线单测(含发布失败兜底),-race 通过
61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
services:
|
||
postgres:
|
||
image: postgres:16-alpine
|
||
container_name: kefu-cloud-db
|
||
environment:
|
||
POSTGRES_USER: postgres
|
||
POSTGRES_PASSWORD: postgres
|
||
POSTGRES_DB: kefu_cloud
|
||
ports:
|
||
- "5433:5432"
|
||
volumes:
|
||
- pgdata:/var/lib/postgresql/data
|
||
|
||
minio:
|
||
image: minio/minio:latest
|
||
container_name: kefu-cloud-minio
|
||
command: server /data --console-address ":9001"
|
||
environment:
|
||
MINIO_ROOT_USER: minioadmin
|
||
MINIO_ROOT_PASSWORD: minioadmin
|
||
# 避开本机其它 MinIO(如 hfb-minio 占用 9000/9001)
|
||
ports:
|
||
- "9100:9000"
|
||
- "9101:9001"
|
||
volumes:
|
||
- miniodata:/data
|
||
|
||
# 一次性初始化:创建 bucket 并开放公共下载(跑完即退出,Exited 0 属正常)
|
||
# 注意:容器网络内仍访问 minio:9000(服务端口),宿主机映射为 9100
|
||
minio-init:
|
||
image: minio/mc:latest
|
||
container_name: kefu-cloud-minio-init
|
||
depends_on:
|
||
- minio
|
||
restart: "no"
|
||
entrypoint: >
|
||
/bin/sh -c "
|
||
sleep 3;
|
||
mc alias set local http://minio:9000 minioadmin minioadmin;
|
||
mc mb -p local/kefu || true;
|
||
mc anonymous set download local/kefu;
|
||
echo 'MinIO bucket kefu ready';
|
||
"
|
||
|
||
# 可选:跨节点 WebSocket 广播总线(多 API 副本联调时启用)
|
||
# docker compose -f docker-compose.dev.yml --profile redis up -d
|
||
# 后端再设置 REDIS_ADDR=localhost:6380
|
||
redis:
|
||
image: redis:7-alpine
|
||
container_name: kefu-cloud-redis
|
||
profiles: ["redis"]
|
||
ports:
|
||
- "6380:6379"
|
||
volumes:
|
||
- redisdata:/data
|
||
|
||
volumes:
|
||
pgdata:
|
||
miniodata:
|
||
redisdata:
|