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