From cb3e9eacc2016763645e35a81a3a1f136396979b Mon Sep 17 00:00:00 2001 From: Laughing Date: Tue, 26 Apr 2022 10:21:49 +0800 Subject: [PATCH] fix standalone docker bugs (#861) * Update boot-tmp.yaml * Update boot-mini-tmp.yaml * Update Dockerfile * Update _boot - change the datafile_size to 10G - use ob-deploy-1.2.1 instead of ob-deploy; - use oceanbase-ce-3.1.3 instead of oceanbase-ce-3.1.2 - fix MINI_MODE bug: `if ${MINI_MODE}` will throw exception while set the environment MINI_MODE=1 --- tools/docker/standalone/Dockerfile | 6 +-- tools/docker/standalone/boot/_boot | 45 +++++++++++++++------- tools/docker/standalone/boot/boot-tmp.yaml | 2 + 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/tools/docker/standalone/Dockerfile b/tools/docker/standalone/Dockerfile index 45d449c599..3fc92da7c3 100644 --- a/tools/docker/standalone/Dockerfile +++ b/tools/docker/standalone/Dockerfile @@ -1,10 +1,10 @@ FROM oceanbase/centos7:latest RUN yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo && \ - yum install -y ob-deploy obclient ob-sysbench wget libaio && \ + yum install -y ob-deploy-1.2.1 obclient ob-sysbench wget libaio && \ mkdir /root/pkg && \ cd /root/pkg && \ - wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm -q && \ - wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm -q && \ + wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-3.1.3-10000292022032916.el7.x86_64.rpm -q && \ + wget https://mirrors.aliyun.com/oceanbase/community/stable/el/7/x86_64/oceanbase-ce-libs-3.1.3-10000292022032916.el7.x86_64.rpm -q && \ rm -rf /usr/obd/mirror/remote/* && \ obd mirror clone *.rpm && \ obd mirror list local && \ diff --git a/tools/docker/standalone/boot/_boot b/tools/docker/standalone/boot/_boot index 3402c3ed93..dcea2a7ff6 100755 --- a/tools/docker/standalone/boot/_boot +++ b/tools/docker/standalone/boot/_boot @@ -5,32 +5,49 @@ source _env STAMP="$(date +%s)" +# return 0 if mini_mode is nil or 'no'/'false'/0 +# 0 means true and 1 for false in bash +function is_mini_mode() { + if test -z ${MINI_MODE} + then + return 1 + fi + + # convert MINI_MODE to upper case string(can work in bash 4.x) + mini_mode=${MINI_MODE^^} + if [ "x${mini_mode}" == "xNO" ] || [ "x${mini_mode}" == "xFALSE" ] || [ "x${mini_mode}" == "x0" ]; then + return 1 + fi + return 0 +} + [[ -f boot.yaml ]] && echo "find boot.yaml, skip configuring..." || { echo "generate boot.yaml ..." TMPFILE="boot.${STAMP}.yaml" - if [[ $MINI_MODE == 1 ]] + + if is_mini_mode then - cp -f boot-mini-tmp.yaml $TMPFILE + echo "oceanbase-ce docker in mini mode" + cp -f boot-mini-tmp.yaml $TMPFILE else - cp -f boot-tmp.yaml $TMPFILE + cp -f boot-tmp.yaml $TMPFILE fi + sed -i "s|@OB_HOME_PATH@|${OB_HOME_PATH}|g" $TMPFILE sed -i "s|@OB_MYSQL_PORT@|${OB_MYSQL_PORT}|g" $TMPFILE sed -i "s|@OB_RPC_PORT@|${OB_RPC_PORT}|g" $TMPFILE sed -i "s|@OB_ROOT_PASSWORD@|${OB_ROOT_PASSWORD}|g" $TMPFILE + [ "${OB_DATA_DIR}" ] && echo " data_dir: ${OB_DATA_DIR}" >> $TMPFILE [ "${OB_REDO_DIR}" ] && echo " redo_dir: ${OB_REDO_DIR}" >> $TMPFILE echo "create boot dirs and deploy ob cluster ..." mkdir -p $OB_HOME_PATH - if [[ $MINI_MODE == 1 ]] - then - obd cluster deploy "${OB_CLUSTER_NAME}" -c $TMPFILE && obd cluster tenant create "${OB_CLUSTER_NAME}" -n ${OB_TENANT_NAME} && obd cluster start "${OB_CLUSTER_NAME}" && obclient -h127.1 -uroot@${OB_TENANT_NAME} -A -P${OB_MYSQL_PORT} < init_tenant_user.sql && mv -f $TMPFILE boot.yaml - else - obd cluster autodeploy "${OB_CLUSTER_NAME}" -c $TMPFILE && obd cluster tenant create "${OB_CLUSTER_NAME}" -n ${OB_TENANT_NAME} && obclient -h127.1 -uroot@${OB_TENANT_NAME} -A -P${OB_MYSQL_PORT} < init_tenant_user.sql && mv -f $TMPFILE boot.yaml - fi -} -[[ -f boot.yaml ]] && { - echo "start ob cluster ..." - obd cluster start $OB_CLUSTER_NAME -} && echo "boot success!" && exec /sbin/init + obd cluster autodeploy "${OB_CLUSTER_NAME}" -c $TMPFILE \ + && obd cluster tenant create "${OB_CLUSTER_NAME}" -n ${OB_TENANT_NAME} \ + && obclient -h127.1 -uroot@${OB_TENANT_NAME} -A -P${OB_MYSQL_PORT} < init_tenant_user.sql \ + && mv -f $TMPFILE boot.yaml \ + && echo "start ob cluster ..." \ + && echo "boot success!" \ + && exec /sbin/init +} diff --git a/tools/docker/standalone/boot/boot-tmp.yaml b/tools/docker/standalone/boot/boot-tmp.yaml index 86d834c64c..d435718087 100644 --- a/tools/docker/standalone/boot/boot-tmp.yaml +++ b/tools/docker/standalone/boot/boot-tmp.yaml @@ -7,3 +7,5 @@ oceanbase-ce: mysql_port: @OB_MYSQL_PORT@ # default: 2881 rpc_port: @OB_RPC_PORT@ # default: 2882 root_password: @OB_ROOT_PASSWORD@ # default: null + datafile_size: 10G + clog_disk_usage_limit_percentage: 98 # default: 80 -- GitLab