# ============================================================ # 捕鱼/棋牌平台 - 一键部署编排(4 个中间件 + 7 个应用服务) # # 启动:docker compose -f deploy/docker-compose.yml up -d # 停止:docker compose -f deploy/docker-compose.yml down # 日志:docker compose -f deploy/docker-compose.yml logs -f <服务名> # # 说明: # 1. 所有容器在同一网络(webapi_default),相互通过容器名访问: # mongo / redis / rabbitmq / pgsql / 0524gateway / 0524admin / ... # 2. 应用容器内部监听 80 端口(见 deploy/Dockerfile),宿主机映射 524x / 8001 # 3. 网关的 ocelot.json 由 deploy.sh 在发布产物中改写为「容器名:80」的下游地址, # 因此网关容器不需要 host 网络,跨平台可用 # 4. 日志挂载到 deploy/logs/<服务名>,上传文件挂载到 deploy/uploads/<服务名> # ============================================================ name: webapi services: # ==================== 中间件 ==================== mongo: image: mongo:6.0 container_name: mongo restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: root23456 ports: - "27017:27017" volumes: - mongo-data:/data/db redis: image: redis:7 container_name: redis restart: always command: ["redis-server", "--requirepass", "123456", "--appendonly", "yes"] ports: - "6379:6379" volumes: - redis-data:/data rabbitmq: image: rabbitmq:3.13-management container_name: rabbitmq restart: always environment: RABBITMQ_DEFAULT_USER: admin RABBITMQ_DEFAULT_PASS: "123456" ports: - "5672:5672" - "15672:15672" volumes: - rabbitmq-data:/var/lib/rabbitmq pgsql: image: postgres:16 container_name: pgsql restart: always environment: POSTGRES_DB: data_0524 POSTGRES_USER: data_0524 POSTGRES_PASSWORD: "123456" ports: - "5432:5432" volumes: - pgsql-data:/var/lib/postgresql/data # ==================== 应用服务 ==================== gateway: image: 0524gateway container_name: 0524gateway restart: always ports: - "8001:80" depends_on: - admin - user - customer - chess - fishroom - fishgame volumes: - ./logs/gateway:/app/logs admin: image: 0524admin container_name: 0524admin restart: always ports: - "5241:80" depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/admin:/app/logs - ./uploads/admin:/app/wwwroot/uploads user: image: 0524user container_name: 0524user restart: always ports: - "5245:80" depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/user:/app/logs - ./uploads/user:/app/wwwroot/uploads customer: image: 0524customer container_name: 0524customer restart: always ports: - "5247:80" depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/customer:/app/logs - ./uploads/customer:/app/wwwroot/uploads chess: image: 0524chess container_name: 0524chess restart: always ports: - "5242:80" depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/chess:/app/logs fishroom: image: 0524fishroom container_name: 0524fishroom restart: always ports: - "5244:80" depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/fishroom:/app/logs fishgame: image: 0524fishgame container_name: 0524fishgame restart: always ports: - "5248:80" # 与 Gateway/ocelot.json 保持一致(仓库内旧 compose 写的 5243 已废弃) depends_on: [mongo, redis, rabbitmq, pgsql] volumes: - ./logs/fishgame:/app/logs volumes: mongo-data: redis-data: rabbitmq-data: pgsql-data: