diff --git a/backend/services/docker-compose.2.0.yml b/backend/services/docker-compose.2.0.yml index 9b6fbf84..d0933b96 100644 --- a/backend/services/docker-compose.2.0.yml +++ b/backend/services/docker-compose.2.0.yml @@ -35,7 +35,7 @@ services: TZ: Asia/Shanghai POSTGRES_USER: ${POSTGRES_USER:-rwa_user} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-rwa_secure_password} - POSTGRES_MULTIPLE_DATABASES: rwa_contribution,rwa_mining,rwa_trading,rwa_mining_admin,rwa_auth,rwa_mining_wallet,rwa_mining_blockchain + POSTGRES_MULTIPLE_DATABASES: rwa_contribution,rwa_mining,rwa_trading,rwa_mining_admin,rwa_auth,rwa_mining_wallet,rwa_mining_blockchain,rwa_mining_presence ports: # 安全加固: 仅绑定 127.0.0.1,禁止公网直连数据库 # deploy-mining.sh 通过 docker exec 访问,不受影响 @@ -493,6 +493,49 @@ services: networks: - rwa-2-network + presence-service-2: + build: + context: ./presence-service + dockerfile: Dockerfile + container_name: rwa-presence-service-2 + depends_on: + postgres-2: + condition: service_healthy + required: false + redis-2: + condition: service_healthy + required: false + environment: + NODE_ENV: production + TZ: Asia/Shanghai + PORT: 3027 + # PostgreSQL - 2.0 独立的 presence 数据库 + DATABASE_URL: postgresql://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@${POSTGRES_HOST:-postgres}:${POSTGRES_PORT:-5432}/rwa_mining_presence?schema=public + # Redis - 使用 DB 17 隔离 (2.0 已用: 8,10,12,13,14,15,16) + REDIS_HOST: ${REDIS_HOST:-redis} + REDIS_PORT: ${REDIS_PORT:-6379} + REDIS_PASSWORD: ${REDIS_PASSWORD:-} + REDIS_DB: 17 + # Kafka - 发布 session-started 事件 + KAFKA_BROKERS: ${KAFKA_BROKERS:-kafka:29092} + # JWT - 与 auth-service 共享密钥以验证 mining-app token + JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-change-in-production} + ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET:-your-admin-jwt-secret-change-in-production} + # 在线窗口: 180 秒无心跳视为离线 + PRESENCE_WINDOW_SECONDS: 180 + SNAPSHOT_INTERVAL_SECONDS: 60 + ports: + - "3027:3027" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3027/api/v1/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + restart: unless-stopped + networks: + - rwa-2-network + # =========================================================================== # Frontend Services (2.0) # ===========================================================================