152 lines
3.9 KiB
YAML
152 lines
3.9 KiB
YAML
# ============================================================
|
|
# 捕鱼/棋牌平台 - 一键部署编排(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: |