x-go-build-args: &go-build-args GOPROXY: "${GOPROXY:-https://goproxy.cn|https://proxy.golang.org|direct}" GOSUMDB: "${GOSUMDB:-sum.golang.org}" services: rocketmq-namesrv: image: apache/rocketmq:5.3.1 container_name: rocketmq-namesrv environment: TZ: UTC JAVA_OPT_EXT: "-Xms256m -Xmx256m -Xmn128m" command: ["sh", "mqnamesrv"] ports: - "19876:9876" rocketmq-broker: image: apache/rocketmq:5.3.1 container_name: rocketmq-broker user: root environment: TZ: UTC NAMESRV_ADDR: "rocketmq-namesrv:9876" JAVA_OPT_EXT: "-Xms512m -Xmx512m -Xmn256m" command: ["sh", "mqbroker", "-n", "rocketmq-namesrv:9876", "-c", "/home/rocketmq/broker.conf"] ports: - "19009:10909" - "10911:10911" - "19011:10911" volumes: - ${ROCKETMQ_BROKER_CONFIG:-./deploy/rocketmq/broker.local.conf}:/home/rocketmq/broker.conf:ro - rocketmq-store:/home/rocketmq/store depends_on: - rocketmq-namesrv gateway-service: build: context: . dockerfile: services/gateway-service/Dockerfile args: *go-build-args container_name: gateway-service environment: TZ: UTC ports: - "13000:13000" depends_on: room-service: condition: service_healthy user-service: condition: service_healthy game-service: condition: service_healthy lucky-gift-service: condition: service_healthy redis: condition: service_healthy rocketmq-broker: condition: service_started healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13000/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s room-service: build: context: . dockerfile: services/room-service/Dockerfile args: *go-build-args container_name: room-service environment: TZ: UTC ports: - "13001:13001" - "13101:13101" depends_on: mysql: condition: service_healthy redis: condition: service_healthy wallet-service: condition: service_healthy lucky-gift-service: condition: service_healthy rocketmq-broker: condition: service_started healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13101/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s wallet-service: build: context: . dockerfile: services/wallet-service/Dockerfile args: *go-build-args container_name: wallet-service environment: TZ: UTC volumes: - ./.env:/app/.env:ro ports: - "13004:13004" - "13104:13104" depends_on: mysql: condition: service_healthy rocketmq-broker: condition: service_started user-service: condition: service_healthy activity-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13104/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s user-service: build: context: . dockerfile: services/user-service/Dockerfile args: *go-build-args container_name: user-service environment: TZ: UTC ports: - "13005:13005" - "13105:13105" depends_on: mysql: condition: service_healthy rocketmq-broker: condition: service_started healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13105/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s activity-service: build: context: . dockerfile: services/activity-service/Dockerfile args: *go-build-args container_name: activity-service environment: TZ: UTC ports: - "13006:13006" - "13106:13106" depends_on: mysql: condition: service_healthy redis: condition: service_healthy rocketmq-broker: condition: service_started user-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13106/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s lucky-gift-service: build: context: . dockerfile: services/lucky-gift-service/Dockerfile args: *go-build-args container_name: lucky-gift-service environment: TZ: UTC ports: - "13013:13013" - "13113:13113" depends_on: mysql: condition: service_healthy wallet-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13113/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s luck-gateway: build: context: . dockerfile: server/luck-gateway/Dockerfile args: *go-build-args container_name: luck-gateway environment: TZ: UTC LUCKY_GIFT_GRPC_ADDR: "lucky-gift-service:13013" LUCK_GATEWAY_ALLOWED_APPS: "aslan,yumi" ports: - "13014:13014" depends_on: lucky-gift-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13014/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s cron-service: build: context: . dockerfile: services/cron-service/Dockerfile args: *go-build-args container_name: cron-service environment: TZ: UTC ports: - "13007:13007" - "13107:13107" depends_on: mysql: condition: service_healthy user-service: condition: service_healthy activity-service: condition: service_healthy rocketmq-broker: condition: service_started game-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13107/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s robot-service: build: context: . dockerfile: services/robot-service/Dockerfile args: *go-build-args container_name: robot-service environment: TZ: UTC ports: - "13011:13011" - "13111:13111" depends_on: mysql: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13111/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s game-service: build: context: . dockerfile: services/game-service/Dockerfile args: *go-build-args container_name: game-service environment: TZ: UTC ports: - "13008:13008" - "13108:13108" depends_on: mysql: condition: service_healthy rocketmq-broker: condition: service_started wallet-service: condition: service_healthy user-service: condition: service_healthy activity-service: condition: service_healthy robot-service: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13108/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s notice-service: build: context: . dockerfile: services/notice-service/Dockerfile args: *go-build-args container_name: notice-service environment: TZ: UTC ports: - "13009:13009" - "13109:13109" depends_on: mysql: condition: service_healthy healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13109/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s statistics-service: build: context: . dockerfile: services/statistics-service/Dockerfile args: *go-build-args container_name: statistics-service environment: TZ: UTC ports: - "13010:13010" - "13110:13110" depends_on: mysql: condition: service_healthy rocketmq-broker: condition: service_started healthcheck: test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:13110/healthz/ready >/dev/null"] interval: 5s timeout: 3s retries: 20 start_period: 10s mysql: image: mysql:8.4 container_name: hyapp-mysql command: - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_unicode_ci" - "--default-time-zone=+00:00" environment: TZ: UTC MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: hyapp_room MYSQL_USER: hyapp MYSQL_PASSWORD: hyapp ports: - "23306:3306" volumes: - mysql-data:/var/lib/mysql - ./services/room-service/deploy/mysql/initdb/001_room_service.sql:/docker-entrypoint-initdb.d/001_room_service.sql:ro - ./services/user-service/deploy/mysql/initdb/001_user_service.sql:/docker-entrypoint-initdb.d/002_user_service.sql:ro - ./services/wallet-service/deploy/mysql/initdb/001_wallet_service.sql:/docker-entrypoint-initdb.d/003_wallet_service.sql:ro - ./services/activity-service/deploy/mysql/initdb/001_activity_service.sql:/docker-entrypoint-initdb.d/004_activity_service.sql:ro - ./tmp/mysql/initdb/005_utf8mb4_chinese_support.sql:/docker-entrypoint-initdb.d/005_utf8mb4_chinese_support.sql:ro - ./tmp/mysql/initdb/006_admin_database.sql:/docker-entrypoint-initdb.d/006_admin_database.sql:ro - ./tmp/mysql/initdb/007_resource_group_wallet_asset_items.sql:/docker-entrypoint-initdb.d/007_resource_group_wallet_asset_items.sql:ro - ./services/lucky-gift-service/deploy/mysql/initdb/001_lucky_gift_service.sql:/docker-entrypoint-initdb.d/008_lucky_gift_service.sql:ro - ./services/cron-service/deploy/mysql/initdb/001_cron_service.sql:/docker-entrypoint-initdb.d/009_cron_service.sql:ro - ./services/game-service/deploy/mysql/initdb/001_game_service.sql:/docker-entrypoint-initdb.d/010_game_service.sql:ro - ./services/game-service/deploy/mysql/initdata/001_self_games.sql:/docker-entrypoint-initdb.d/010_game_service_data.sql:ro - ./services/robot-service/deploy/mysql/initdb/001_robot_service.sql:/docker-entrypoint-initdb.d/011_robot_service.sql:ro - ./services/notice-service/deploy/mysql/initdb/001_notice_service.sql:/docker-entrypoint-initdb.d/011_notice_service.sql:ro - ./services/statistics-service/deploy/mysql/initdb/001_statistics_service.sql:/docker-entrypoint-initdb.d/012_statistics_service.sql:ro - ./tmp/mysql/initdb/999_local_grants.sql:/docker-entrypoint-initdb.d/999_local_grants.sql:ro healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -proot --silent"] interval: 5s timeout: 3s retries: 30 redis: image: redis:7.4-alpine container_name: hyapp-redis environment: TZ: UTC ports: - "13379:6379" healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 30 volumes: mysql-data: rocketmq-store: