mirror of
https://gitee.com/kennylee/docker.git
synced 2024-11-29 18:38:34 +08:00
初步编写rocketmq的镜像容器
This commit is contained in:
parent
aa112e4b13
commit
c5c692ce85
0
rocketmq/README.md
Normal file
0
rocketmq/README.md
Normal file
7
rocketmq/cluster/data1/broker/conf/broker.conf
Normal file
7
rocketmq/cluster/data1/broker/conf/broker.conf
Normal file
@ -0,0 +1,7 @@
|
||||
brokerClusterName = DefaultCluster
|
||||
brokerName = broker-b
|
||||
brokerId = 0
|
||||
deleteWhen = 04
|
||||
fileReservedTime = 48
|
||||
brokerRole = ASYNC_MASTER
|
||||
flushDiskType = ASYNC_FLUSH
|
47
rocketmq/cluster/docker-compose.yml
Normal file
47
rocketmq/cluster/docker-compose.yml
Normal file
@ -0,0 +1,47 @@
|
||||
version: '2'
|
||||
services:
|
||||
#Service for nameserver
|
||||
namesrv:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/kennylee/rocketmq:4.6-alpine
|
||||
container_name: rmqnamesrv
|
||||
ports:
|
||||
- 9876:9876
|
||||
volumes:
|
||||
- ./data/namesrv/logs:/home/rocketmq/logs
|
||||
command: sh mqnamesrv
|
||||
|
||||
#Service for broker
|
||||
broker:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/kennylee/rocketmq:4.6-alpine
|
||||
container_name: rmqbroker
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10909:10909
|
||||
- 10911:10911
|
||||
- 10912:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data/broker/logs:/home/rocketmq/logs
|
||||
- ./data/broker/store:/home/rocketmq/store
|
||||
- ./data/broker/conf/broker.conf:/opt/rocketmq-ROCKETMQ_VERSION/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-ROCKETMQ_VERSION/conf/broker.conf
|
||||
|
||||
#Service for another broker -- broker1
|
||||
broker1:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/kennylee/rocketmq:4.6-alpine
|
||||
container_name: rmqbroker-b
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10929:10909
|
||||
- 10931:10911
|
||||
- 10932:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data1/broker/logs:/home/rocketmq/logs
|
||||
- ./data1/broker/store:/home/rocketmq/store
|
||||
- ./data1/broker/conf/broker.conf:/opt/rocketmq-ROCKETMQ_VERSION/conf/broker.conf
|
||||
command: sh mqbroker -c /opt/rocketmq-ROCKETMQ_VERSION/conf/broker.conf
|
91
rocketmq/image-build/Dockerfile
Normal file
91
rocketmq/image-build/Dockerfile
Normal file
@ -0,0 +1,91 @@
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
FROM registry.cn-hangzhou.aliyuncs.com/kennylee/java:openjdk-8-alpine3.9
|
||||
|
||||
RUN apk add --no-cache bash gettext nmap-ncat openssl busybox-extras
|
||||
|
||||
ARG user=rocketmq
|
||||
ARG group=rocketmq
|
||||
ARG uid=3000
|
||||
ARG gid=3000
|
||||
|
||||
# RocketMQ is run with user `rocketmq`, uid = 3000
|
||||
# If you bind mount a volume from the host or a data container,
|
||||
# ensure you use the same uid
|
||||
RUN addgroup --gid ${gid} ${group} \
|
||||
&& adduser --uid ${uid} -G ${group} ${user} -s /bin/bash -D
|
||||
|
||||
# add default version by kennylee
|
||||
ARG version=4.6.0
|
||||
|
||||
# Rocketmq version
|
||||
ENV ROCKETMQ_VERSION ${version}
|
||||
|
||||
# Rocketmq home
|
||||
ENV ROCKETMQ_HOME /home/rocketmq/rocketmq-${ROCKETMQ_VERSION}
|
||||
|
||||
WORKDIR ${ROCKETMQ_HOME}
|
||||
|
||||
# Install
|
||||
RUN set -eux; \
|
||||
apk add --virtual .build-deps curl gnupg unzip; \
|
||||
curl https://archive.apache.org/dist/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip -o rocketmq.zip; \
|
||||
curl https://archive.apache.org/dist/rocketmq/${ROCKETMQ_VERSION}/rocketmq-all-${ROCKETMQ_VERSION}-bin-release.zip.asc -o rocketmq.zip.asc; \
|
||||
#https://www.apache.org/dist/rocketmq/KEYS
|
||||
curl https://www.apache.org/dist/rocketmq/KEYS -o KEYS; \
|
||||
\
|
||||
gpg --import KEYS; \
|
||||
gpg --batch --verify rocketmq.zip.asc rocketmq.zip; \
|
||||
unzip rocketmq.zip; \
|
||||
mv rocketmq-all*/* . ; \
|
||||
rmdir rocketmq-all* ; \
|
||||
rm rocketmq.zip rocketmq.zip.asc KEYS; \
|
||||
apk del .build-deps ; \
|
||||
rm -rf /var/cache/apk/* ; \
|
||||
rm -rf /tmp/*
|
||||
|
||||
# Copy customized scripts
|
||||
COPY scripts/ ${ROCKETMQ_HOME}/bin/
|
||||
|
||||
RUN chown -R ${uid}:${gid} ${ROCKETMQ_HOME}
|
||||
|
||||
# Expose namesrv port
|
||||
EXPOSE 9876
|
||||
|
||||
# Override customized scripts for namesrv
|
||||
RUN mv ${ROCKETMQ_HOME}/bin/runserver-customize.sh ${ROCKETMQ_HOME}/bin/runserver.sh \
|
||||
&& chmod a+x ${ROCKETMQ_HOME}/bin/runserver.sh \
|
||||
&& chmod a+x ${ROCKETMQ_HOME}/bin/mqnamesrv
|
||||
|
||||
# Expose broker ports
|
||||
EXPOSE 10909 10911 10912
|
||||
|
||||
# Override customized scripts for broker
|
||||
RUN mv ${ROCKETMQ_HOME}/bin/runbroker-customize.sh ${ROCKETMQ_HOME}/bin/runbroker.sh \
|
||||
&& chmod a+x ${ROCKETMQ_HOME}/bin/runbroker.sh \
|
||||
&& chmod a+x ${ROCKETMQ_HOME}/bin/mqbroker
|
||||
|
||||
# Export Java options
|
||||
RUN export JAVA_OPT=" -Duser.home=/opt"
|
||||
|
||||
# Add ${JAVA_HOME}/lib/ext as java.ext.dirs
|
||||
RUN sed -i 's/${JAVA_HOME}\/jre\/lib\/ext/${JAVA_HOME}\/jre\/lib\/ext:${JAVA_HOME}\/lib\/ext/' ${ROCKETMQ_HOME}/bin/tools.sh
|
||||
|
||||
USER ${user}
|
||||
|
||||
WORKDIR ${ROCKETMQ_HOME}/bin
|
156
rocketmq/image-build/scripts/runbroker-customize.sh
Executable file
156
rocketmq/image-build/scripts/runbroker-customize.sh
Executable file
@ -0,0 +1,156 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
#===========================================================================================
|
||||
# Java Environment Setting
|
||||
#===========================================================================================
|
||||
error_exit ()
|
||||
{
|
||||
echo "ERROR: $1 !!"
|
||||
exit 1
|
||||
}
|
||||
|
||||
find_java_home()
|
||||
{
|
||||
case "`uname`" in
|
||||
Darwin)
|
||||
JAVA_HOME=$(/usr/libexec/java_home)
|
||||
;;
|
||||
*)
|
||||
JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
find_java_home
|
||||
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
|
||||
|
||||
export JAVA_HOME
|
||||
export JAVA="$JAVA_HOME/bin/java"
|
||||
export BASE_DIR=$(dirname $0)/..
|
||||
export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
|
||||
|
||||
#===========================================================================================
|
||||
# JVM Configuration
|
||||
#===========================================================================================
|
||||
calculate_heap_sizes()
|
||||
{
|
||||
case "`uname`" in
|
||||
Linux)
|
||||
system_memory_in_mb=`free -m| sed -n '2p' | awk '{print $2}'`
|
||||
system_cpu_cores=`egrep -c 'processor([[:space:]]+):.*' /proc/cpuinfo`
|
||||
;;
|
||||
FreeBSD)
|
||||
system_memory_in_bytes=`sysctl hw.physmem | awk '{print $2}'`
|
||||
system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
|
||||
system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
|
||||
;;
|
||||
SunOS)
|
||||
system_memory_in_mb=`prtconf | awk '/Memory size:/ {print $3}'`
|
||||
system_cpu_cores=`psrinfo | wc -l`
|
||||
;;
|
||||
Darwin)
|
||||
system_memory_in_bytes=`sysctl hw.memsize | awk '{print $2}'`
|
||||
system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
|
||||
system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
|
||||
;;
|
||||
*)
|
||||
# assume reasonable defaults for e.g. a modern desktop or
|
||||
# cheap server
|
||||
system_memory_in_mb="2048"
|
||||
system_cpu_cores="2"
|
||||
;;
|
||||
esac
|
||||
|
||||
# some systems like the raspberry pi don't report cores, use at least 1
|
||||
if [ "$system_cpu_cores" -lt "1" ]
|
||||
then
|
||||
system_cpu_cores="1"
|
||||
fi
|
||||
|
||||
# set max heap size based on the following
|
||||
# max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
|
||||
# calculate 1/2 ram and cap to 1024MB
|
||||
# calculate 1/4 ram and cap to 8192MB
|
||||
# pick the max
|
||||
half_system_memory_in_mb=`expr $system_memory_in_mb / 2`
|
||||
quarter_system_memory_in_mb=`expr $half_system_memory_in_mb / 2`
|
||||
if [ "$half_system_memory_in_mb" -gt "1024" ]
|
||||
then
|
||||
half_system_memory_in_mb="1024"
|
||||
fi
|
||||
if [ "$quarter_system_memory_in_mb" -gt "8192" ]
|
||||
then
|
||||
quarter_system_memory_in_mb="8192"
|
||||
fi
|
||||
if [ "$half_system_memory_in_mb" -gt "$quarter_system_memory_in_mb" ]
|
||||
then
|
||||
max_heap_size_in_mb="$half_system_memory_in_mb"
|
||||
else
|
||||
max_heap_size_in_mb="$quarter_system_memory_in_mb"
|
||||
fi
|
||||
MAX_HEAP_SIZE="${max_heap_size_in_mb}M"
|
||||
|
||||
# Young gen: min(max_sensible_per_modern_cpu_core * num_cores, 1/4 * heap size)
|
||||
max_sensible_yg_per_core_in_mb="100"
|
||||
max_sensible_yg_in_mb=`expr $max_sensible_yg_per_core_in_mb "*" $system_cpu_cores`
|
||||
|
||||
desired_yg_in_mb=`expr $max_heap_size_in_mb / 4`
|
||||
|
||||
if [ "$desired_yg_in_mb" -gt "$max_sensible_yg_in_mb" ]
|
||||
then
|
||||
HEAP_NEWSIZE="${max_sensible_yg_in_mb}M"
|
||||
else
|
||||
HEAP_NEWSIZE="${desired_yg_in_mb}M"
|
||||
fi
|
||||
}
|
||||
|
||||
calculate_heap_sizes
|
||||
|
||||
# Dynamically calculate parameters, for reference.
|
||||
Xms=$MAX_HEAP_SIZE
|
||||
Xmx=$MAX_HEAP_SIZE
|
||||
Xmn=$HEAP_NEWSIZE
|
||||
MaxDirectMemorySize=$MAX_HEAP_SIZE
|
||||
# Set for `JAVA_OPT`.
|
||||
JAVA_OPT="${JAVA_OPT} -server -Xms${Xms} -Xmx${Xmx} -Xmn${Xmn}"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8"
|
||||
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:+AlwaysPreTouch"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:MaxDirectMemorySize=${MaxDirectMemorySize}"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages -XX:-UseBiasedLocking"
|
||||
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
|
||||
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
|
||||
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
|
||||
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
|
||||
|
||||
numactl --interleave=all pwd > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]
|
||||
then
|
||||
if [ -z "$RMQ_NUMA_NODE" ] ; then
|
||||
numactl --interleave=all $JAVA ${JAVA_OPT} $@
|
||||
else
|
||||
numactl --cpunodebind=$RMQ_NUMA_NODE --membind=$RMQ_NUMA_NODE $JAVA ${JAVA_OPT} $@
|
||||
fi
|
||||
else
|
||||
$JAVA ${JAVA_OPT} $@
|
||||
fi
|
142
rocketmq/image-build/scripts/runserver-customize.sh
Executable file
142
rocketmq/image-build/scripts/runserver-customize.sh
Executable file
@ -0,0 +1,142 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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.
|
||||
|
||||
#===========================================================================================
|
||||
# Java Environment Setting
|
||||
#===========================================================================================
|
||||
error_exit ()
|
||||
{
|
||||
echo "ERROR: $1 !!"
|
||||
exit 1
|
||||
}
|
||||
|
||||
find_java_home()
|
||||
{
|
||||
case "`uname`" in
|
||||
Darwin)
|
||||
JAVA_HOME=$(/usr/libexec/java_home)
|
||||
;;
|
||||
*)
|
||||
JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
find_java_home
|
||||
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
|
||||
[ ! -e "$JAVA_HOME/bin/java" ] && error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)!"
|
||||
|
||||
export JAVA_HOME
|
||||
export JAVA="$JAVA_HOME/bin/java"
|
||||
export BASE_DIR=$(dirname $0)/..
|
||||
export CLASSPATH=.:${BASE_DIR}/conf:${CLASSPATH}
|
||||
|
||||
#===========================================================================================
|
||||
# JVM Configuration
|
||||
#===========================================================================================
|
||||
calculate_heap_sizes()
|
||||
{
|
||||
case "`uname`" in
|
||||
Linux)
|
||||
system_memory_in_mb=`free -m| sed -n '2p' | awk '{print $2}'`
|
||||
system_cpu_cores=`egrep -c 'processor([[:space:]]+):.*' /proc/cpuinfo`
|
||||
;;
|
||||
FreeBSD)
|
||||
system_memory_in_bytes=`sysctl hw.physmem | awk '{print $2}'`
|
||||
system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
|
||||
system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
|
||||
;;
|
||||
SunOS)
|
||||
system_memory_in_mb=`prtconf | awk '/Memory size:/ {print $3}'`
|
||||
system_cpu_cores=`psrinfo | wc -l`
|
||||
;;
|
||||
Darwin)
|
||||
system_memory_in_bytes=`sysctl hw.memsize | awk '{print $2}'`
|
||||
system_memory_in_mb=`expr $system_memory_in_bytes / 1024 / 1024`
|
||||
system_cpu_cores=`sysctl hw.ncpu | awk '{print $2}'`
|
||||
;;
|
||||
*)
|
||||
# assume reasonable defaults for e.g. a modern desktop or
|
||||
# cheap server
|
||||
system_memory_in_mb="2048"
|
||||
system_cpu_cores="2"
|
||||
;;
|
||||
esac
|
||||
|
||||
# some systems like the raspberry pi don't report cores, use at least 1
|
||||
if [ "$system_cpu_cores" -lt "1" ]
|
||||
then
|
||||
system_cpu_cores="1"
|
||||
fi
|
||||
|
||||
# set max heap size based on the following
|
||||
# max(min(1/2 ram, 1024MB), min(1/4 ram, 8GB))
|
||||
# calculate 1/2 ram and cap to 1024MB
|
||||
# calculate 1/4 ram and cap to 8192MB
|
||||
# pick the max
|
||||
half_system_memory_in_mb=`expr $system_memory_in_mb / 2`
|
||||
quarter_system_memory_in_mb=`expr $half_system_memory_in_mb / 2`
|
||||
if [ "$half_system_memory_in_mb" -gt "1024" ]
|
||||
then
|
||||
half_system_memory_in_mb="1024"
|
||||
fi
|
||||
if [ "$quarter_system_memory_in_mb" -gt "8192" ]
|
||||
then
|
||||
quarter_system_memory_in_mb="8192"
|
||||
fi
|
||||
if [ "$half_system_memory_in_mb" -gt "$quarter_system_memory_in_mb" ]
|
||||
then
|
||||
max_heap_size_in_mb="$half_system_memory_in_mb"
|
||||
else
|
||||
max_heap_size_in_mb="$quarter_system_memory_in_mb"
|
||||
fi
|
||||
MAX_HEAP_SIZE="${max_heap_size_in_mb}M"
|
||||
|
||||
# Young gen: min(max_sensible_per_modern_cpu_core * num_cores, 1/4 * heap size)
|
||||
max_sensible_yg_per_core_in_mb="100"
|
||||
max_sensible_yg_in_mb=`expr $max_sensible_yg_per_core_in_mb "*" $system_cpu_cores`
|
||||
|
||||
desired_yg_in_mb=`expr $max_heap_size_in_mb / 4`
|
||||
|
||||
if [ "$desired_yg_in_mb" -gt "$max_sensible_yg_in_mb" ]
|
||||
then
|
||||
HEAP_NEWSIZE="${max_sensible_yg_in_mb}M"
|
||||
else
|
||||
HEAP_NEWSIZE="${desired_yg_in_mb}M"
|
||||
fi
|
||||
}
|
||||
|
||||
calculate_heap_sizes
|
||||
|
||||
# Dynamically calculate parameters, for reference.
|
||||
Xms=$MAX_HEAP_SIZE
|
||||
Xmx=$MAX_HEAP_SIZE
|
||||
Xmn=$HEAP_NEWSIZE
|
||||
# Set for `JAVA_OPT`.
|
||||
JAVA_OPT="${JAVA_OPT} -server -Xms${Xms} -Xmx${Xmx} -Xmn${Xmn}"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8 -XX:-UseParNewGC"
|
||||
JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:/dev/shm/rmq_srv_gc.log -XX:+PrintGCDetails"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
|
||||
JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
|
||||
JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${BASE_DIR}/lib"
|
||||
#JAVA_OPT="${JAVA_OPT} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"
|
||||
JAVA_OPT="${JAVA_OPT} ${JAVA_OPT_EXT}"
|
||||
JAVA_OPT="${JAVA_OPT} -cp ${CLASSPATH}"
|
||||
|
||||
$JAVA ${JAVA_OPT} $@
|
29
rocketmq/standalone/docker-compose.yml
Normal file
29
rocketmq/standalone/docker-compose.yml
Normal file
@ -0,0 +1,29 @@
|
||||
version: '2'
|
||||
services:
|
||||
#Service for nameserver
|
||||
namesrv:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/kennylee/rocketmq:4.6-alpine
|
||||
container_name: rmqnamesrv
|
||||
ports:
|
||||
- 9876:9876
|
||||
volumes:
|
||||
- ./data/namesrv/logs:/home/rocketmq/logs
|
||||
command: sh mqnamesrv
|
||||
|
||||
#Service for broker
|
||||
broker:
|
||||
image: registry.cn-hangzhou.aliyuncs.com/kennylee/rocketmq:4.6-alpine
|
||||
container_name: rmqbroker
|
||||
links:
|
||||
- namesrv
|
||||
ports:
|
||||
- 10909:10909
|
||||
- 10911:10911
|
||||
- 10912:10912
|
||||
environment:
|
||||
- NAMESRV_ADDR=namesrv:9876
|
||||
volumes:
|
||||
- ./data/broker/logs:/home/rocketmq/logs
|
||||
- ./data/broker/store:/home/rocketmq/store
|
||||
command: sh mqbroker
|
||||
|
Loading…
Reference in New Issue
Block a user