version: '3.8' services: # MySQL数据库 mysql: image: mysql:8.0 container_name: emotion-mysql restart: always environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: emotion_museum MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./mysql_emotion_museum_final.sql:/docker-entrypoint-initdb.d/init.sql command: --default-authentication-plugin=mysql_native_password networks: - emotion-network # Redis缓存 redis: image: redis:7-alpine container_name: emotion-redis restart: always ports: - "6379:6379" volumes: - redis_data:/data networks: - emotion-network # Nacos注册中心 nacos: image: nacos/nacos-server:v2.2.3 container_name: emotion-nacos restart: always environment: MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_PORT: 3306 MYSQL_SERVICE_DB_NAME: nacos MYSQL_SERVICE_USER: root MYSQL_SERVICE_PASSWORD: 123456 MYSQL_SERVICE_DB_PARAM: characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&allowPublicKeyRetrieval=true ports: - "8848:8848" - "9848:9848" depends_on: - mysql volumes: - nacos_logs:/home/nacos/logs networks: - emotion-network # 用户服务 emotion-user: build: context: . dockerfile: emotion-user/Dockerfile container_name: emotion-user restart: always ports: - "19001:19001" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # AI服务 emotion-ai: build: context: . dockerfile: emotion-ai/Dockerfile container_name: emotion-ai restart: always ports: - "19002:19002" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 记录服务 emotion-record: build: context: . dockerfile: emotion-record/Dockerfile container_name: emotion-record restart: always ports: - "19003:19003" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 成长服务 emotion-growth: build: context: . dockerfile: emotion-growth/Dockerfile container_name: emotion-growth restart: always ports: - "19004:19004" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 探索服务 emotion-explore: build: context: . dockerfile: emotion-explore/Dockerfile container_name: emotion-explore restart: always ports: - "19005:19005" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 奖励服务 emotion-reward: build: context: . dockerfile: emotion-reward/Dockerfile container_name: emotion-reward restart: always ports: - "19006:19006" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 统计服务 emotion-stats: build: context: . dockerfile: emotion-stats/Dockerfile container_name: emotion-stats restart: always ports: - "19007:19007" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/emotion_museum?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: 123456 SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - mysql - redis - nacos networks: - emotion-network # 网关服务 emotion-gateway: build: context: . dockerfile: emotion-gateway/Dockerfile container_name: emotion-gateway restart: always ports: - "19000:19000" environment: SPRING_PROFILES_ACTIVE: local SPRING_DATA_REDIS_HOST: redis SPRING_CLOUD_NACOS_DISCOVERY_SERVER_ADDR: nacos:8848 SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: nacos:8848 depends_on: - emotion-user - emotion-ai - emotion-record - emotion-growth - emotion-explore - emotion-reward - emotion-stats networks: - emotion-network volumes: mysql_data: redis_data: nacos_logs: networks: emotion-network: driver: bridge