Files
docker-images/dmdb/entrypoint.sh
T
2026-01-22 10:46:47 +08:00

57 lines
1.4 KiB
Bash

#!/bin/bash
set -e
DM_PATH="/opt/dmdbms"
DM_DATA_PATH="${DM_PATH}/data"
DB_NAME="DAMENG"
DM_INI_PATH="${DM_DATA_PATH}/${DB_NAME}/dm.ini"
DM_INIT_PWD="${DM_INIT_PWD:-Aa123456}"
DM_LICENSE_PATH="/license/dm.key"
mkdir -p ${DM_DATA_PATH}
chown -R dmdba ${DM_PATH}
if [ ! -f "$DM_INI_PATH" ]; then
echo "初始化数据库..."
su - dmdba -c "${DM_PATH}/bin/dminit PATH=${DM_DATA_PATH} DB_NAME=${DB_NAME} SYSDBA_PWD=${DM_INIT_PWD} SYSAUDITOR_PWD=${DM_INIT_PWD}"
if -f "$DM_LICENSE_PATH"; then
echo "复制许可证..."
cp $DM_LICENSE_PATH ${DM_PATH}/bin/dm.key
chown dmdba ${DM_PATH}/bin/dm.key
fi
echo "启动 DM Server..."
su - dmdba -c "${DM_PATH}/bin/dmserver ${DM_INI_PATH} &"
echo "等待 DM Server 启动..."
until $DM_PATH/bin/disql SYSDBA/${DM_INIT_PWD}@localhost:5236 -e "select 1 from dual;" >/dev/null 2>&1; do
sleep 1
done
echo "DM server is ready."
echo "执行初始化 SQL..."
for sql_file in /init.db/*.sql; do
echo "执行 $sql_file..."
$DM_PATH/bin/disql SYSDBA/${DM_INIT_PWD}@localhost:5236 \`${sql_file}
done
echo "初始化完成."
else
if -f "$DM_LICENSE_PATH"; then
echo "复制许可证..."
cp $DM_LICENSE_PATH ${DM_PATH}/bin/dm.key
chown dmdba ${DM_PATH}/bin/dm.key
fi
echo "数据库已存在,直接启动..."
su - dmdba -c "${DM_PATH}/bin/dmserver ${DM_INI_PATH} &"
fi
tail -f /dev/null