version: '3.8' services: # MySQL数据库 mysql: image: mysql:8.0 container_name: intel-platform-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123456} MYSQL_DATABASE: intelligence_platform MYSQL_CHARACTER_SET_SERVER: utf8mb4 MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql - ./init-db:/docker-entrypoint-initdb.d networks: - intel-network healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 start_period: 30s # 图谱计算服务 (Sidecar) kg-compute: build: context: ./kg-compute dockerfile: Dockerfile container_name: intel-platform-kg-compute restart: unless-stopped ports: - "8101:8101" networks: - intel-network # 后端服务 backend: build: context: ./backend-springboot dockerfile: Dockerfile container_name: intel-platform-backend restart: unless-stopped environment: SPRING_PROFILES_ACTIVE: production SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/intelligence_platform?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&characterEncoding=utf8mb4 SPRING_DATASOURCE_USERNAME: root SPRING_DATASOURCE_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123456} JAVA_OPTS: "-Xms512m -Xmx2g -XX:+UseG1GC" KG_COMPUTE_URL: http://kg-compute:8101 ports: - "8080:8080" volumes: - backend_logs:/app/logs - backend_uploads:/app/uploads - backend_data:/app/data depends_on: mysql: condition: service_healthy kg-compute: condition: service_started networks: - intel-network healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 60s # 前端服务 frontend: build: context: ./frontend-vue dockerfile: Dockerfile container_name: intel-platform-frontend restart: unless-stopped ports: - "80:80" depends_on: - backend networks: - intel-network healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/"] interval: 30s timeout: 3s retries: 3 start_period: 10s volumes: mysql_data: driver: local backend_logs: driver: local backend_uploads: driver: local backend_data: driver: local networks: intel-network: driver: bridge