rwadurian/backend/services/mpc-service/docker-compose.yml

104 lines
2.6 KiB
YAML

# =============================================================================
# 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: