services: # 프론트엔드 - Vite 개발 서버 fromis9-frontend: image: node:20-alpine container_name: fromis9-frontend labels: - "com.centurylinklabs.watchtower.enable=false" working_dir: /app command: sh -c "npm install && npm run dev -- --host 0.0.0.0 --port 80" volumes: - ./frontend:/app networks: - app - db restart: unless-stopped # 백엔드 - Express API 서버 fromis9-backend: image: node:20-alpine container_name: fromis9-backend working_dir: /app command: sh -c "npm install && node server.js" env_file: - .env environment: - PORT=3000 volumes: - ./backend:/app networks: - app - db restart: unless-stopped # Meilisearch - 검색 엔진 meilisearch: image: getmeili/meilisearch:v1.6 container_name: fromis9-meilisearch environment: - MEILI_MASTER_KEY=${MEILI_MASTER_KEY} volumes: - ./meilisearch_data:/meili_data networks: - app restart: unless-stopped # Redis - 추천 검색어 캐시 redis: image: redis:7-alpine container_name: fromis9-redis volumes: - ./redis_data:/data networks: - app restart: unless-stopped networks: app: external: true db: external: true