init.sh 初始化脚本导致面板重启

我在开发nacos docker安装包时需要初始化数据库,执行数据库文件导入。写了一段脚本,但是点击安装后页面跳转到已安装列表,但是显示未安装应用,再刷新就退出面板需要登陆,登陆后已安装应用显示失败,并且,错误提示时面板重启。

#!/bin/bash

# 获取当前路径
current_path=$(pwd)

url="https://消息反馈地址/"
message='{"body":"'$current_path'"}'

response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)

# 从环境变量中获取数据库连接信息
DB_INIT=${DB_INIT:-false}
DB_HOST=${MYSQL_SERVICE_HOST:-localhost}
DB_PORT=${MYSQL_SERVICE_PORT:-3306}
DB_USER=${MYSQL_SERVICE_USER:-your_username}
DB_PASSWORD=${MYSQL_SERVICE_PASSWORD:-your_password}
DB_NAME=${MYSQL_SERVICE_DB_NAME:-your_database_name}

# 检查是否存在 mysql-schema.sql 文件
if [ ! -f mysql-schema.sql ]; then
  echo "mysql-schema.sql not found. Please make sure you have mounted the file into the container."
  message='{"body":"mysql-schema.sql not found. Please make sure you have mounted the file into the container."}'
  response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)
fi

# 打印数据库连接信息
echo "Database connection details:"
echo "Host: $DB_HOST"
echo "Port: $DB_PORT"
echo "User: $DB_USER"
echo "Password: $DB_PASSWORD"
echo "Database name: $DB_NAME"
message='{"body":{"DatabaseConnectionDetails":{"Host":"'"$DB_HOST"'","Port":"'"$DB_PORT"'","User":"'"$DB_USER"'","Password":"'"$DB_PASSWORD"'","DatabaseName":"'"$DB_NAME"'"}}}'
response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)


# 检查是否需要初始化数据库
if [ "$DB_INIT" = false ]; then
  echo "Skipping database initialization..."
  message='{"body":"Skipping database initialization..."}'
  response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)
fi

# 导入数据库 schema
echo "Importing mysql-schema.sql into the database..."

# 使用 mysql 命令进行导入,-h 表示主机,-P 表示端口,-u 表示用户名,-p 表示密码,-D 表示数据库名
mysql -h "$DB_HOST" -P "$DB_PORT" -u "$DB_USER" -p"$DB_PASSWORD" -D "$DB_NAME" < mysql-schema.sql

# 检查导入是否成功
if [ $? -eq 0 ]; then
  echo "Import successful!"
  message='{"body":"Import successful!"}'
  response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)
else
  echo "Import failed. Check your database connection details and try again."
  message='{"body":"Import failed. Check your database connection details and try again."}'
  response=$(curl -X POST -H "Content-Type: application/json" -d "$message" $url)
fi

我有看到 koshi有变量
PANEL_DB_USER
PANEL_DB_XXX
之类的会自动创建数据库和用户。但是没有找到相关文档,不知道能不能初始化执行sql文件

制作的安装包(见附件)
-mysql 此版本需要执行脚本
另外一个正常安装

附件:
https://f.wss.ink/f/d9ogssl8ni1 密码:754578

我们后续版本会考虑支持 Nacos + MySQL 版本。