blob: 169e0373a38b4d5b4363117a02bb053b9e74442b [file] [log] [blame]
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
## Main
if [ $# -lt 4 ]; then
echo "Usage: sh $0 DATA_HOME ROCKETMQ_VERSION NAMESRV_ADDR CONF_FILE"
exit -1
fi
DATA_HOME=$1
ROCKETMQ_VERSION=$2
NAMESRV_ADDR=$3
CONF_FILE=$4
BASE_IMAGE=$5
## Show Env Setting
echo "ENV Setting: "
echo " DATA_HOME=${DATA_HOME} ROCKETMQ_VERSION=${ROCKETMQ_VERSION}"
echo " NAMESRV_ADDR=${NAMESRV_ADDR}"
echo " CONF_FILE=${CONF_FILE}"
## Check config file existing
if [ ! -f "${DATA_HOME}/conf/${CONF_FILE}" ]; then
echo "You must ensure the broker config file [${DATA_HOME}/conf/${CONF_FILE}] is pre-defined!!!"
exit -1
fi
# Start Broker
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 \
apacherocketmq/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