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: