使用docker部署rocketmq時的坑
阿新 • • 發佈:2019-01-24
如果同時需要docker執行console需要注意一個問題
下面是官方文件中執行console的命令,裡面的JAVA_OPTS引數是不正確的,不知道是不是版本原因
docker run -e
"JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876
-Dcom.rocketmq.sendMessageWithVIPChannel=false"
-p 8080:8080 -t styletang/rocketmq-console-ng
按照這個命令執行的話會報錯 connect to <null> failed
, 如圖
對比直接在伺服器上執行的命令,把其中java_opts改為如下
docker run -e
"JAVA_OPTS=-Drocketmq.config.namesrvAddr=127.0.0.1:9876
-D" -p 8080:8080 -t styletang/rocketmq-console-ng
再次執行,沒有報錯。
下面是我啟動namesrv,broker,console用的docker-compose.yml
version: '2' namesrv: image: apache/incubator-rocketmq-namesrv:4.0.0-incubating net: "host" # 涉及到一些特殊的服務,所以用的是host,正常情況建議不要使用host網路 volumes: - /data/rocket/namesrv/opt/logs:/opt/logs # 保留日誌到宿主機 - /data/rocket/namesrv/opt/store:/opt/store - /etc/localtime:/etc/localtime:ro # 修改容器內的時區和宿主機一樣 ports: - "9876:9876" broker: image: apache/incubator-rocketmq-broker:4.0.0-incubating net: "host" environment: NAMESRV_ADDR: xx.xx.xx.xx:9876 # namesrv的地址 volumes: - /data/rocket/broker/opt/logs:/opt/logs # 保留日誌 - /data/rocket/broker/opt/store:/opt/store # 保留資料到宿主機 - /etc/localtime:/etc/localtime:ro #links: # - namesrv:namesrv ports: - "10911:10911" - "10909:10909" console: image: styletang/rocketmq-console-ng:latest net: "host" volumes: - /etc/localtime:/etc/localtime:ro ports: - "8080:8080" #links: # - namesrv:namesrv environment: JAVA_OPTS: -Drocketmq.config.namesrvAddr=xx.xx.xx.xx:9876