- 基于 NestJS + TypeScript + MySQL + Redis 架构 - 完整的模块化设计(认证、用户、小组、游戏、预约等) - JWT 认证和 RBAC 权限控制系统 - Docker 容器化部署支持 - 添加 CLAUDE.md 项目开发指南 - 配置 .gitignore 忽略文件 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
67 lines
1.4 KiB
YAML
67 lines
1.4 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# MySQL数据库
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: gamegroup-mysql-dev
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: password
|
|
MYSQL_DATABASE: gamegroup
|
|
MYSQL_USER: gamegroup
|
|
MYSQL_PASSWORD: gamegroup123
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mysql-data:/var/lib/mysql
|
|
networks:
|
|
- gamegroup-network
|
|
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
|
|
|
|
# Redis 缓存
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: gamegroup-redis-dev
|
|
ports:
|
|
- "6380:6379"
|
|
networks:
|
|
- gamegroup-network
|
|
|
|
# 后端应用
|
|
backend:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
target: builder
|
|
container_name: gamegroup-backend-dev
|
|
environment:
|
|
NODE_ENV: development
|
|
DB_HOST: mysql
|
|
DB_PORT: 3306
|
|
DB_USERNAME: root
|
|
DB_PASSWORD: password
|
|
DB_DATABASE: gamegroup
|
|
DB_SYNCHRONIZE: "true"
|
|
DB_LOGGING: "true"
|
|
REDIS_HOST: redis
|
|
REDIS_PORT: 6379
|
|
JWT_SECRET: dev-secret-key
|
|
JWT_EXPIRES_IN: 7d
|
|
ports:
|
|
- "3000:3000"
|
|
volumes:
|
|
- ./src:/app/src
|
|
- ./test:/app/test
|
|
depends_on:
|
|
- mysql
|
|
networks:
|
|
- gamegroup-network
|
|
command: npm run start:dev
|
|
|
|
volumes:
|
|
mysql-data:
|
|
|
|
networks:
|
|
gamegroup-network:
|
|
driver: bridge
|