version: '3.8' services: # MySQL 数据库 mysql: image: mysql:8.0 container_name: gamegroup-mysql restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: gamegroup MYSQL_USER: gamegroup MYSQL_PASSWORD: gamegroup123 TZ: Asia/Shanghai volumes: - mysql-data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci networks: - gamegroup-network # Redis 缓存 redis: image: redis:7-alpine container_name: gamegroup-redis restart: always ports: - "6379:6379" volumes: - redis-data:/data networks: - gamegroup-network # NestJS 应用 (可选,用于生产环境) # app: # build: # context: . # dockerfile: Dockerfile # container_name: gamegroup-backend # restart: always # ports: # - "3000:3000" # environment: # NODE_ENV: production # DB_HOST: mysql # REDIS_HOST: redis # depends_on: # - mysql # - redis # networks: # - gamegroup-network volumes: mysql-data: redis-data: networks: gamegroup-network: driver: bridge