# Drama Studio - Development Mode # UI 핫리로드 지원 services: mongodb: image: mongo:7.0 container_name: drama-studio-mongodb restart: unless-stopped environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_USER:-admin} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD:-password123} ports: - "27021:27017" volumes: - drama_studio_mongodb_data:/data/db networks: - drama-studio-network healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 30s timeout: 10s retries: 3 redis: image: redis:7-alpine container_name: drama-studio-redis restart: unless-stopped ports: - "6383:6379" volumes: - drama_studio_redis_data:/data networks: - drama-studio-network healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 30s timeout: 10s retries: 3 api: build: context: ./audio-studio-api dockerfile: Dockerfile container_name: drama-studio-api restart: unless-stopped environment: - MONGODB_URL=mongodb://${MONGO_USER}:${MONGO_PASSWORD}@mongodb:27017/ - DB_NAME=${DB_NAME:-drama_studio} - REDIS_URL=redis://redis:6379 - TTS_ENGINE_URL=http://tts-engine:8001 - MUSICGEN_URL=http://musicgen:8002 - FREESOUND_API_KEY=${FREESOUND_API_KEY} ports: - "8010:8000" depends_on: mongodb: condition: service_healthy redis: condition: service_healthy networks: - drama-studio-network # UI 개발 모드 - 핫리로드 ui: image: node:20-alpine container_name: drama-studio-ui-dev working_dir: /app command: sh -c "npm install && npm run dev" environment: - NEXT_PUBLIC_API_URL=http://localhost:8010 - WATCHPACK_POLLING=true ports: - "3010:3000" volumes: - ./audio-studio-ui:/app - /app/node_modules - /app/.next depends_on: - api networks: - drama-studio-network networks: drama-studio-network: driver: bridge volumes: drama_studio_mongodb_data: drama_studio_redis_data: