feat: 完善启动脚本

This commit is contained in:
xiao 2024-11-05 18:58:09 +08:00
parent d93c4bf0f7
commit e76337a279
3 changed files with 99 additions and 13 deletions

View File

@ -25,11 +25,13 @@ RUN locale-gen en_US.UTF-8 \
&& export LC_CTYPE=en_US.UTF-8 \
&& update-locale
# 复制 bt.sh 文件
# 复制启动脚本
COPY bt.sh /bt.sh
COPY init_mysql.sh /init_mysql.sh
# 转换 bt.sh 文件的换行符
# 转换启动脚本
RUN dos2unix /bt.sh
RUN dos2unix /init_mysql.sh
# 设置构建参数
ARG RANDOM_NAME
@ -86,7 +88,7 @@ RUN apt clean \
&& rm -rf /var/lib/apt/lists/*
# 设置标识文件
RUN echo "docker_btlnmp_d12" > /www/server/panel/data/o.pl
RUN echo "docker_btlamp_d12" > /www/server/panel/data/o.pl
ENTRYPOINT ["/bin/sh","-c","/bt.sh"]

63
bt.sh
View File

@ -6,28 +6,71 @@ init_path=/etc/init.d
Root_Path=`cat /var/bt_setupPath.conf`
Setup_Path=$Root_Path/server/mysql
Data_Path=$Root_Path/server/data
O_pl=$(cat /www/server/panel/data/o.pl)
soft_start(){
${init_path}/httpd start
${init_path}/php-fpm-83 start
${init_path}/bt restart
# 扫描并启动所有服务
init_scripts=$(ls ${init_path})
for script in ${init_scripts}; do
case "${script}" in
"bt"|"mysqld"|"nginx"|"httpd")
continue
;;
esac
${init_path}/${script} start
done
if [ -f ${init_path}/nginx ]; then
${init_path}/nginx start
elif [ -f ${init_path}/httpd ]; then
${init_path}/httpd start
fi
${init_path}/bt stop
${init_path}/bt start
pkill crond
/sbin/crond
chmod 600 /etc/ssh/ssh_host_*
/usr/sbin/sshd -D &
}
init_mysql(){
if [ "${O_pl}" != "docker_btlamp_d12" ] && [ "${O_pl}" != "docker_btlnmp_d12" ];then
return
fi
if [ -d "${Data_Path}" ]; then
check_z=$(ls "${Data_Path}")
echo "check_z:"
echo ${check_z}
if [[ ! -z "${check_z}" ]]; then
echo "check_z is not empty"
return
fi
fi
if [ -f /init_mysql.sh ] && [ -d "${Setup_Path}" ];then
sh /init_mysql.sh
rm -f /init_mysql.sh
fi
}
is_empty_Data(){
return `ls -A ${Data_Path}/|wc -w`
return "$(ls -A ${Data_Path}/|wc -w)"
}
start_mysql(){
chown -R mysql:mysql ${Data_Path}
chgrp -R mysql ${Setup_Path}/.
${init_path}/mysqld start
rm -f /init_mysql.sh
if [ -d "${Setup_Path}" ] && [ -f "${init_path}/mysqld" ];then
chown -R mysql:mysql ${Data_Path}
chgrp -R mysql ${Setup_Path}/.
${init_path}/mysqld start
fi
}
soft_start > /dev/null
is_empty_Data > /dev/null
init_mysql > /dev/null
start_mysql > /dev/null
tail -f /dev/null
soft_start > /dev/null
#tail -f /dev/null
${init_path}/bt log

41
init_mysql.sh Normal file
View File

@ -0,0 +1,41 @@
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
Root_Path=`cat /var/bt_setupPath.conf`
Setup_Path=$Root_Path/server/mysql
Data_Path=$Root_Path/server/data
Mysql_Initialize(){
if [ -d "${Data_Path}" ]; then
check_z=$(ls "${Data_Path}")
if [[ ! -z "${check_z}" ]]; then
return
fi
fi
mkdir -p ${Data_Path}
chown -R mysql:mysql ${Data_Path}
chgrp -R mysql ${Setup_Path}/.
${Setup_Path}/bin/mysqld --initialize-insecure --basedir=${Setup_Path} --datadir=${Data_Path} --user=mysql
cat > /etc/ld.so.conf.d/mysql.conf<<EOF
${Setup_Path}/lib
EOF
ldconfig
ln -sf ${Setup_Path}/lib/mysql /usr/lib/mysql
ln -sf ${Setup_Path}/include/mysql /usr/include/mysql
/etc/init.d/mysqld start
mysqlpwd=`cat /dev/urandom | head -n 16 | md5sum | head -c 16`
${Setup_Path}/bin/mysqladmin -u root password "${mysqlpwd}"
cd "${Setup_Path}"
rm -f src.tar.gz
rm -rf src
/etc/init.d/mysqld start
rm -rf /init_mysql.sh
}
Mysql_Initialize