version: '3.8' services: backend: build: context: ./backend dockerfile: Dockerfile ports: - "8000:8000" environment: - DATABASE_URL=postgresql://jiaoyu:jiaoyu123@db:5432/jiaoyu - REDIS_URL=redis://redis:6379/0 - AI_API_KEY=${AI_API_KEY} - AI_API_BASE=${AI_API_BASE:-https://api.openai.com/v1} - AI_MODEL=${AI_MODEL:-gpt-4o} - SECRET_KEY=${SECRET_KEY:-change-me-in-production} - CORS_ORIGINS=["http://localhost","http://localhost:5173"] volumes: - ./uploads:/app/uploads depends_on: - db - redis restart: unless-stopped frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "80:80" depends_on: - backend restart: unless-stopped db: image: postgres:16-alpine environment: POSTGRES_DB: jiaoyu POSTGRES_USER: jiaoyu POSTGRES_PASSWORD: jiaoyu123 volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" restart: unless-stopped redis: image: redis:7-alpine ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped volumes: postgres_data: redis_data: