- sidebar H5: React18+TypeScript+Vite+AntDesignMobile, 学员画像/话术推荐/一键发送 - admin后台: React18+AntDesign, 登录/数据看板/话术库管理CRUD - kb-admin-service: 话术CRUD API、分页查询 - analytics-service: 数据统计Dashboard API - 所有服务的Dockerfile + nginx.conf + 完整docker-compose编排
208 lines
4.5 KiB
YAML
208 lines
4.5 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: ai-assistant-nginx
|
|
restart: always
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf
|
|
depends_on:
|
|
- gateway
|
|
|
|
mysql:
|
|
image: mysql:5.7
|
|
container_name: ai-assistant-mysql
|
|
restart: always
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: root
|
|
MYSQL_DATABASE: ai_assistant
|
|
MYSQL_CHARACTER_SET_SERVER: utf8mb4
|
|
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
|
|
ports:
|
|
- "3306:3306"
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
|
|
command: --default-authentication-plugin=mysql_native_password
|
|
healthcheck:
|
|
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-proot"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:6-alpine
|
|
container_name: ai-assistant-redis
|
|
restart: always
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
rabbitmq:
|
|
image: rabbitmq:3-management-alpine
|
|
container_name: ai-assistant-rabbitmq
|
|
restart: always
|
|
ports:
|
|
- "5672:5672"
|
|
- "15672:15672"
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: admin
|
|
RABBITMQ_DEFAULT_PASS: admin
|
|
volumes:
|
|
- rabbitmq_data:/var/lib/rabbitmq
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "ping"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
gateway:
|
|
build: ./backend/gateway
|
|
container_name: ai-assistant-gateway
|
|
restart: always
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- auth-service
|
|
- archive-service
|
|
- conversation-service
|
|
- intent-service
|
|
- recommend-service
|
|
- generation-service
|
|
- kb-admin-service
|
|
- analytics-service
|
|
|
|
auth-service:
|
|
build: ./backend/auth-service
|
|
container_name: ai-assistant-auth
|
|
restart: always
|
|
ports:
|
|
- "8081:8081"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
|
|
archive-service:
|
|
build: ./backend/archive-service
|
|
container_name: ai-assistant-archive
|
|
restart: always
|
|
ports:
|
|
- "8082:8082"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- rabbitmq
|
|
|
|
conversation-service:
|
|
build: ./backend/conversation-service
|
|
container_name: ai-assistant-conversation
|
|
restart: always
|
|
ports:
|
|
- "8083:8083"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- rabbitmq
|
|
|
|
intent-service:
|
|
build: ./backend/intent-service
|
|
container_name: ai-assistant-intent
|
|
restart: always
|
|
ports:
|
|
- "8084:8084"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- rabbitmq
|
|
|
|
recommend-service:
|
|
build: ./backend/recommendation-service
|
|
container_name: ai-assistant-recommend
|
|
restart: always
|
|
ports:
|
|
- "8085:8085"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- rabbitmq
|
|
|
|
generation-service:
|
|
build: ./backend/generation-service
|
|
container_name: ai-assistant-generation
|
|
restart: always
|
|
ports:
|
|
- "8086:8086"
|
|
environment:
|
|
- REDIS_HOST=redis
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- redis
|
|
|
|
kb-admin-service:
|
|
build: ./backend/kb-admin-service
|
|
container_name: ai-assistant-kbadmin
|
|
restart: always
|
|
ports:
|
|
- "8087:8087"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
|
|
analytics-service:
|
|
build: ./backend/analytics-service
|
|
container_name: ai-assistant-analytics
|
|
restart: always
|
|
ports:
|
|
- "8088:8088"
|
|
environment:
|
|
- MYSQL_HOST=mysql
|
|
- REDIS_HOST=redis
|
|
- SPRING_PROFILES_ACTIVE=docker
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
|
|
volumes:
|
|
mysql_data:
|
|
redis_data:
|
|
rabbitmq_data:
|