version: '3.8'

services:
  cloud-drive-backend:
    build: .
    container_name: cloud-drive-backend
    ports:
      - "8002:8002"
    environment:
      - ENVIRONMENT=production
      - DATABASE_URL=mysql://username:password@mysql-host:3306/mytest_db
      - REDIS_URL=redis://redis-host:6379/0
      - SECRET_KEY=your-production-secret-key
      - CORS_ORIGINS=http://localhost:3003,https://yourdomain.com
    volumes:
      - ./uploads:/app/uploads
      - ./logs:/app/logs
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8002/api/v1/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s
    networks:
      - cloud-drive-network

  # 可选：MySQL数据库服务
  mysql:
    image: mysql:8.0
    container_name: cloud-drive-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=rootpassword
      - MYSQL_DATABASE=mytest_db
      - MYSQL_USER=username
      - MYSQL_PASSWORD=password
    ports:
      - "3306:3306"
    volumes:
      - mysql_data:/var/lib/mysql
      - ./database/init.sql:/docker-entrypoint-initdb.d/init.sql
    restart: unless-stopped
    networks:
      - cloud-drive-network

  # 可选：Redis服务
  redis:
    image: redis:7-alpine
    container_name: cloud-drive-redis
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data
    restart: unless-stopped
    networks:
      - cloud-drive-network

volumes:
  mysql_data:
  redis_data:

networks:
  cloud-drive-network:
    driver: bridge