agent_9art/docker-compose.yml
jiao 5f44136c85 feat(05-06): Phase 5-6 - 前端 + 管理后台 + 部署配置
- sidebar H5: React18+TypeScript+Vite+AntDesignMobile, 学员画像/话术推荐/一键发送
- admin后台: React18+AntDesign, 登录/数据看板/话术库管理CRUD
- kb-admin-service: 话术CRUD API、分页查询
- analytics-service: 数据统计Dashboard API
- 所有服务的Dockerfile + nginx.conf + 完整docker-compose编排
2026-05-12 18:12:20 +08:00

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: