Files
baiyue-firstleg/deploy/docker-compose.rocketmq.yml
T

47 lines
1.9 KiB
YAML
Raw Normal View History

2026-08-04 09:05:28 +08:00
name: firstleg-${DEPLOY_ENV:-test}-rocketmq
services:
rocketmq-namesrv:
image: apache/rocketmq:5.3.1
restart: unless-stopped
command: sh mqnamesrv
networks: [infra-network]
rocketmq-broker:
image: apache/rocketmq:5.3.1
restart: unless-stopped
depends_on: [rocketmq-namesrv]
environment:
ROCKETMQ_BROKER_IP: ${ROCKETMQ_BROKER_IP:?ROCKETMQ_BROKER_IP is required}
volumes:
- ./rocketmq:/config:ro
- ${ROCKETMQ_DATA_DIR:-/data/firstleg/rocketmq/store}:/home/rocketmq/store
command: sh /config/render-broker-config.sh
networks: [infra-network]
rocketmq-topic-init:
image: apache/rocketmq:5.3.1
depends_on: [rocketmq-broker]
environment:
# 必须与 File Service 完全一致;允许生产环境显式传入空字符串。
MQ_TOPIC_PREFIX: ${MQ_TOPIC_PREFIX?MQ_TOPIC_PREFIX must be set; use test- for test and an empty value for production}
command: >-
sh -eu -c 'until sh mqadmin clusterList -n rocketmq-namesrv:9876 2>/dev/null
| grep -q "BaiyueCluster"; do sleep 2; done;
sh mqadmin updateTopic -n rocketmq-namesrv:9876 -c BaiyueCluster
-t "$${MQ_TOPIC_PREFIX}baiyue-file-export-command-v1" -r 4 -w 4;
sh mqadmin updateSubGroup -n rocketmq-namesrv:9876 -c BaiyueCluster
-g "$${MQ_TOPIC_PREFIX}baiyue-file-export-worker-v1";
sh mqadmin updateSubGroup -n rocketmq-namesrv:9876 -c BaiyueCluster
-g "$${MQ_TOPIC_PREFIX}baiyue-file-export-dlq-handler-v1";
sh mqadmin updateTopic -n rocketmq-namesrv:9876 -c BaiyueCluster
-t "%DLQ%$${MQ_TOPIC_PREFIX}baiyue-file-export-worker-v1" -r 1 -w 1 -p 6'
# Broker 注册较慢或任一初始化命令失败时整组重试;所有命令均幂等。
restart: on-failure
networks: [infra-network]
networks:
infra-network:
external: true
name: ${INFRA_NETWORK:-firstleg-test-infra-network}