# ============================================================================= # MPC Party Service - Docker Compose # ============================================================================= version: '3.8' services: # MPC Party Service mpc-party-service: build: context: . dockerfile: Dockerfile container_name: rwa-mpc-party ports: - "3006:3006" environment: NODE_ENV: development APP_PORT: 3006 DATABASE_URL: mysql://mpc_user:password@mysql:3306/rwa_mpc_party_db REDIS_HOST: redis REDIS_PORT: 6379 REDIS_DB: 5 KAFKA_BROKERS: kafka:9092 MPC_COORDINATOR_URL: http://mpc-session-coordinator:50051 MPC_MESSAGE_ROUTER_WS_URL: ws://mpc-message-router:50052 SHARE_MASTER_KEY: ${SHARE_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef} JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-here} depends_on: mysql: condition: service_healthy redis: condition: service_started networks: - mpc-network restart: unless-stopped volumes: - ./logs:/app/logs # MySQL Database mysql: image: mysql:8.0 container_name: rwa-mpc-mysql ports: - "3307:3306" environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: rwa_mpc_party_db MYSQL_USER: mpc_user MYSQL_PASSWORD: password volumes: - mysql_data:/var/lib/mysql - ./database/migrations:/docker-entrypoint-initdb.d healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5 networks: - mpc-network # Redis redis: image: redis:7-alpine container_name: rwa-mpc-redis ports: - "6380:6379" volumes: - redis_data:/data networks: - mpc-network # Kafka (for event publishing) zookeeper: image: confluentinc/cp-zookeeper:7.5.0 container_name: rwa-mpc-zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 networks: - mpc-network kafka: image: confluentinc/cp-kafka:7.5.0 container_name: rwa-mpc-kafka ports: - "9093:9092" environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 depends_on: - zookeeper networks: - mpc-network networks: mpc-network: driver: bridge volumes: mysql_data: redis_data: