services: postgres: image: postgres:15-alpine container_name: autostock-postgres environment: POSTGRES_USER: ${POSTGRES_USER:-stock} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-stock1234} POSTGRES_DB: ${POSTGRES_DB:-stock} volumes: - postgres_data:/var/lib/postgresql/data - ./docker/init-db.sql:/docker-entrypoint-initdb.d/init.sql ports: - "5432:5432" networks: - autostock-network redis: image: redis:7-alpine container_name: autostock-redis ports: - "6379:6379" volumes: - redis_data:/data networks: - autostock-network rabbitmq: image: rabbitmq:3-management-alpine container_name: autostock-rabbitmq environment: RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-guest} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-guest} ports: - "5672:5672" - "15672:15672" volumes: - rabbitmq_data:/var/lib/rabbitmq networks: - autostock-network backend: build: context: ./backend dockerfile: Dockerfile container_name: autostock-backend volumes: - ./backend:/app ports: - "8090:8000" environment: - DATABASE_URL=postgresql://${POSTGRES_USER:-stock}:${POSTGRES_PASSWORD:-stock1234}@postgres:5432/${POSTGRES_DB:-stock} - REDIS_URL=redis://redis:6379/0 - RABBITMQ_URL=amqp://${RABBITMQ_DEFAULT_USER:-guest}:${RABBITMQ_DEFAULT_PASS:-guest}@rabbitmq:5672/ - KIS_MODE=${KIS_MODE:-virtual} - KIS_VIRTUAL_APP_KEY=${KIS_VIRTUAL_APP_KEY} - KIS_VIRTUAL_APP_SECRET=${KIS_VIRTUAL_APP_SECRET} - KIS_VIRTUAL_ACCOUNT_NO=${KIS_VIRTUAL_ACCOUNT_NO} - KIS_VIRTUAL_URL=${KIS_VIRTUAL_URL:-https://openapivts.koreainvestment.com:29443} - KIS_REAL_APP_KEY=${KIS_REAL_APP_KEY} - KIS_REAL_APP_SECRET=${KIS_REAL_APP_SECRET} - KIS_REAL_ACCOUNT_NO=${KIS_REAL_ACCOUNT_NO} - KIS_REAL_URL=${KIS_REAL_URL:-https://openapi.koreainvestment.com:9443} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - MCP_SERVER_URL=http://mcp-server:8001 command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload depends_on: - postgres - redis - rabbitmq networks: - autostock-network mcp-server: build: context: ./mcp-server dockerfile: Dockerfile container_name: autostock-mcp-server volumes: - ./mcp-server:/app ports: - "8001:8001" environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - LOG_LEVEL=debug - DATABASE_URL=postgresql://${POSTGRES_USER:-stock}:${POSTGRES_PASSWORD:-stock1234}@postgres:5432/${POSTGRES_DB:-stock} command: uvicorn main:app --host 0.0.0.0 --port 8001 --reload networks: - autostock-network frontend: image: node:20-alpine container_name: autostock-frontend working_dir: /app volumes: - ./frontend:/app - /app/node_modules ports: - "3000:3000" environment: - VITE_API_TARGET=http://backend:8000 command: sh -c "npm install && npm run dev" depends_on: - backend networks: - autostock-network volumes: postgres_data: redis_data: rabbitmq_data: networks: autostock-network: driver: bridge