diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..55c2480 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,50 @@ +version: '3' +services: + # 命名服务 + rocketmq-namesrv: + image: apache/rocketmq:5.2.0 + container_name: rocketmq-namesrv + ports: + - "9876:9876" # namesrv 默认端口 + volumes: + - ./rocketmq/namesrv/logs:/root/logs # 日志挂载 + command: sh mqnamesrv # 启动命名服务 + networks: + - rocketmq-network + + # 消息代理 + rocketmq-broker: + image: apache/rocketmq:5.2.0 + container_name: rocketmq-broker + ports: + - "10909:10909" # 客户端通信端口 + - "10911:10911" # 主从同步端口 + volumes: + - ./rocketmq/broker/logs:/root/logs # 日志挂载 + - ./rocketmq/broker/store:/root/store # 数据存储挂载 + - ./rocketmq/broker/conf/broker.conf:/opt/rocketmq-5.2.0/conf/broker.conf # 配置文件挂载 + environment: + - NAMESRV_ADDR=rocketmq-namesrv:9876 # 关联 namesrv 地址 + - JAVA_OPTS="-Duser.home=/opt" # 解决路径权限问题 + command: sh mqbroker -c /opt/rocketmq-5.2.0/conf/broker.conf # 加载自定义配置启动 + depends_on: + - rocketmq-namesrv + networks: + - rocketmq-network + + # 控制台(可选,可视化管理) + rocketmq-console: + image: apacherocketmq/console:2.0.0 + container_name: rocketmq-console + ports: + - "8080:8080" # 控制台访问端口 + environment: + - NAMESRV_ADDR=rocketmq-namesrv:9876 # 关联 namesrv 地址 + depends_on: + - rocketmq-namesrv + networks: + - rocketmq-network + +networks: + rocketmq-network: + driver: bridge \ No newline at end of file