version: '3.8' services: # MongoDB数据库 mongodb: image: mongo:7 container_name: ai-chatroom-mongodb restart: unless-stopped ports: - "27017:27017" volumes: - mongodb_data:/data/db environment: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-chatroom123} networks: - chatroom-network healthcheck: test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet interval: 10s timeout: 5s retries: 5 # 后端服务 backend: build: context: ./backend dockerfile: Dockerfile container_name: ai-chatroom-backend restart: unless-stopped ports: - "8000:8000" depends_on: mongodb: condition: service_healthy environment: - MONGODB_URL=mongodb://admin:${MONGO_PASSWORD:-chatroom123}@mongodb:27017 - MONGODB_DB=ai_chatroom - HOST=0.0.0.0 - PORT=8000 - DEBUG=${DEBUG:-false} - SECRET_KEY=${SECRET_KEY:-change-this-in-production} - ENCRYPTION_KEY=${ENCRYPTION_KEY:-your-32-byte-encryption-key-here} volumes: - ./backend:/app networks: - chatroom-network # 前端服务 frontend: build: context: ./frontend dockerfile: Dockerfile container_name: ai-chatroom-frontend restart: unless-stopped ports: - "3000:80" depends_on: - backend environment: - VITE_API_URL=http://backend:8000 networks: - chatroom-network networks: chatroom-network: driver: bridge volumes: mongodb_data: