This is an automated email from the ASF dual-hosted git repository. vongosling pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/rocketmq-docker.git
commit d84993dd8af65ebc5bc1c5c247209c3d269a311f Author: liuruiyiyang <[email protected]> AuthorDate: Wed Aug 7 17:41:32 2019 +0800 Docs(): update README of product --- product/README.md | 14 +++++++------- product/start-broker.sh | 32 +++++++++++++++++++++++++------- product/start-ns.sh | 32 +++++++++++++++++++++++++------- stage.sh | 17 ++--------------- 4 files changed, 59 insertions(+), 36 deletions(-) diff --git a/product/README.md b/product/README.md index 11282ac..fe28d3c 100644 --- a/product/README.md +++ b/product/README.md @@ -35,12 +35,12 @@ How to config a 2m-2s-async cluster in Docker style. Note: You can skip this step if you use an existing nameserver cluster -1. Confirm the host machine where the nameserver is to be deployed and copy the product directory into the host. Determine the directory (DATA_HOME) where the container persistences content (logs/storage) on the host, as well as the RocketMQ image version (ROCKETMQ_VERSION) +1. Confirm the host machine where the nameserver is to be deployed and copy the product directory into the host. Determine the directory (DATA_HOME) where the container persistences content (logs/storage) on the host, as well as the RocketMQ image version (ROCKETMQ_VERSION) and base image alpine or centos (BASE_IMAGE) 2. Run the script start-ns.sh, for example: ``` - sh start-ns.sh /home/nameserver/data 4.5.0 + sh start-ns.sh /home/nameserver/data 4.5.0 alpine ``` 3. Repeat above steps if there are multiple nameservers in the cluster. @@ -49,14 +49,14 @@ Note: You can skip this step if you use an existing nameserver cluster 1. Confirm the NameServer Cluster address. (fomart e.g. "ns1:9876;ns2:9876;...") -2. Confirm the host machine where the broker-a master is to be deployed,determine the directory (DATA_HOME) where the container persistences content (logs/storage) on the host, e.g. DATA_HOME is set as /home/broker/data/; then you need to copy the reference config file conf/2m-2s-async/broker-a.properties as /home/broker/data/conf/2m-2s-async/broker-a.properties in the host. +2. Confirm the host machine where the broker-a master is to be deployed,determine the directory (DATA_HOME) where the container persistence content (logs/storage) exists on the host, e.g. DATA_HOME is set as /home/broker/data/; then you need to copy the reference config file conf/2m-2s-async/broker-a.properties as /home/broker/data/conf/2m-2s-async/broker-a.properties in the host. Change file broker-a.properties and make the property 'brokerIP1' value as the dns-hostname(Precautions #3) of the host. -3. Confirm the ROCKETMQ_VERSION (e.g. 4.5.0), start broker with shell script start-broker.sh through the following command: +3. Confirm the ROCKETMQ_VERSION (e.g. 4.5.0), start broker with shell script start-broker.sh through the following command: ``` - sh start-broker.sh /home/broker/data 4.5.0 "ns1:9876;ns2:9876" conf/2m-2s-async/broker-a.properties + sh start-broker.sh /home/broker/data 4.5.0 "ns1:9876;ns2:9876" conf/2m-2s-async/broker-a.properties alpine ``` 4. Check if the broker container is start up correctly (Note:The dir DATA_HOME in host needs to open read/write permissions for the rocketmq user in the container, Precautions #1) @@ -68,12 +68,12 @@ Note: You can skip this step if you use an existing nameserver cluster 6. Confirm the ROCKETMQ_VERSION,start slave broker with shell script start-broker.sh: ``` - sh start-broker.sh /home/broker/data 4.5.0 "ns1:9876;ns2:9876" conf/2m-2s-async/broker-a-s.properties + sh start-broker.sh /home/broker/data 4.5.0 "ns1:9876;ns2:9876" conf/2m-2s-async/broker-a-s.properties alpine ``` 7. Check if the broker container is start up correctly. -8. Repeat above steps to create master and slave broker docker conatiners. +8. Repeat above steps to create master and slave broker docker containers. ## Precautions diff --git a/product/start-broker.sh b/product/start-broker.sh index c7b4e93..2c70f5f 100644 --- a/product/start-broker.sh +++ b/product/start-broker.sh @@ -25,6 +25,7 @@ DATA_HOME=$1 ROCKETMQ_VERSION=$2 NAMESRV_ADDR=$3 CONF_FILE=$4 +BASE_IMAGE=$5 ## Show Env Setting echo "ENV Setting: " @@ -40,10 +41,27 @@ fi # Start Broker -docker run -d -v ${DATA_HOME}/logs:/home/rocketmq/logs -v ${DATA_HOME}/store:/home/rocketmq/store \ - -v ${DATA_HOME}/conf:/home/rocketmq/conf \ - --name rmqbroker \ - -e "NAMESRV_ADDR=${NAMESRV_ADDR}" \ - -p 10911:10911 -p 10912:10912 -p 10909:10909 \ - rocketmqinc/rocketmq:${ROCKETMQ_VERSION} \ - sh mqbroker -c /home/rocketmq/conf/${CONF_FILE} +start_broker() +{ + TAG_SUFFIX=$1 + docker run -d -v ${DATA_HOME}/logs:/home/rocketmq/logs -v ${DATA_HOME}/store:/home/rocketmq/store \ + -v ${DATA_HOME}/conf:/home/rocketmq/conf \ + --name rmqbroker \ + -e "NAMESRV_ADDR=${NAMESRV_ADDR}" \ + -p 10911:10911 -p 10912:10912 -p 10909:10909 \ + rocketmqinc/rocketmq:${ROCKETMQ_VERSION}${TAG_SUFFIX} \ + sh mqbroker -c /home/rocketmq/conf/${CONF_FILE} +} + +case "${BASE_IMAGE}" in + alpine) + start_broker -alpine + ;; + centos) + start_broker + ;; + *) + echo "${BASE_IMAGE} is not supported, supported base images: centos, alpine" + exit -1 + ;; +esac \ No newline at end of file diff --git a/product/start-ns.sh b/product/start-ns.sh index 5d33ca2..e09eaca 100644 --- a/product/start-ns.sh +++ b/product/start-ns.sh @@ -17,21 +17,39 @@ ## Main -if [ $# -lt 2 ]; then - echo "Usage: sh $0 DATA_HOME ROCKETMQ_VERSION" +if [ $# -lt 3 ]; then + echo "Usage: sh $0 DATA_HOME ROCKETMQ_VERSION BASE_IMAGE" exit -1 fi DATA_HOME=$1 ROCKETMQ_VERSION=$2 +BASE_IMAGE=$3 ## Show Env Setting echo "ENV Setting: " echo "DATA_HOME=${DATA_HOME} ROCKETMQ_VERSION=${ROCKETMQ_VERSION}" # Start nameserver -docker run -d -v ${DATA_HOME}/logs:/home/rocketmq/logs \ - --name rmqnamesrv \ - -p 9876:9876 \ - rocketmqinc/rocketmq:${ROCKETMQ_VERSION} \ - sh mqnamesrv \ No newline at end of file +start_namesrv() +{ + TAG_SUFFIX=$1 + docker run -d -v ${DATA_HOME}/logs:/home/rocketmq/logs \ + --name rmqnamesrv \ + -p 9876:9876 \ + rocketmqinc/rocketmq:${ROCKETMQ_VERSION}${TAG_SUFFIX} \ + sh mqnamesrv +} + +case "${BASE_IMAGE}" in + alpine) + start_namesrv -alpine + ;; + centos) + start_namesrv + ;; + *) + echo "${BASE_IMAGE} is not supported, supported base images: centos, alpine" + exit -1 + ;; +esac \ No newline at end of file diff --git a/stage.sh b/stage.sh index 652d160..cb7898f 100644 --- a/stage.sh +++ b/stage.sh @@ -50,18 +50,5 @@ cp -rf "$CURRENT_DIR/templates/" "$STAGE_DIR/$version" echo "staged templates into folder $STAGE_DIR/$version" -# Replace ROCKETMQ_VERSION with real version string in all files under $STAGE_DIR/$version -replace_version() -{ - case "`uname`" in - Darwin) - find "$STAGE_DIR/$version" -type f | xargs perl -pi -e "s/ROCKETMQ_VERSION/${version}/g" - ;; - *) - #sed -i "s/ROCKETMQ_VERSION/${version}/g" `grep ROCKETMQ_VERSION -rl $STAGE_DIR/$version/template` - find "$STAGE_DIR/$version/template" -type f | xargs perl -pi -e "s/ROCKETMQ_VERSION/${version}/g" - ;; - esac -} - -replace_version \ No newline at end of file +# Replace string "ROCKETMQ_VERSION" with real version in all files under $STAGE_DIR/$version +find "$STAGE_DIR/$version" -type f | xargs perl -pi -e "s/ROCKETMQ_VERSION/${version}/g" \ No newline at end of file
