合并账户库为单表
This commit is contained in:
101
deploy/deploy-to-nas-tongweb.sh
Executable file
101
deploy/deploy-to-nas-tongweb.sh
Executable file
@@ -0,0 +1,101 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
||||
|
||||
SERVER_HOST="116.62.17.81"
|
||||
SERVER_PORT="9444"
|
||||
SERVER_USERNAME="wkc"
|
||||
SERVER_PASSWORD="wkc@0825"
|
||||
REMOTE_ROOT="/volume1/webapp/ccdi"
|
||||
TONGWEB_HOME="${TONGWEB_HOME:-/opt/TongWeb}"
|
||||
APP_NAME="${APP_NAME:-ruoyi-admin}"
|
||||
DRY_RUN="false"
|
||||
|
||||
ensure_command() {
|
||||
local command_name="$1"
|
||||
if ! command -v "${command_name}" >/dev/null 2>&1; then
|
||||
echo "缺少命令: ${command_name}" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_paramiko() {
|
||||
if python3 - <<'PY'
|
||||
import importlib.util
|
||||
import sys
|
||||
|
||||
sys.exit(0 if importlib.util.find_spec("paramiko") else 1)
|
||||
PY
|
||||
then
|
||||
return
|
||||
fi
|
||||
|
||||
python3 -m pip install --user paramiko
|
||||
}
|
||||
|
||||
POSITION=0
|
||||
for arg in "$@"; do
|
||||
if [[ "${arg}" == "--dry-run" ]]; then
|
||||
DRY_RUN="true"
|
||||
continue
|
||||
fi
|
||||
|
||||
POSITION=$((POSITION + 1))
|
||||
case "${POSITION}" in
|
||||
1) SERVER_HOST="${arg}" ;;
|
||||
2) SERVER_PORT="${arg}" ;;
|
||||
3) SERVER_USERNAME="${arg}" ;;
|
||||
4) SERVER_PASSWORD="${arg}" ;;
|
||||
5) REMOTE_ROOT="${arg}" ;;
|
||||
6) TONGWEB_HOME="${arg}" ;;
|
||||
7) APP_NAME="${arg}" ;;
|
||||
*)
|
||||
echo "仅支持 [host] [port] [username] [password] [remoteRoot] [tongwebHome] [appName] [--dry-run]" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "${DRY_RUN}" == "true" ]]; then
|
||||
echo "[DryRun] TongWeb NAS 部署参数预览"
|
||||
echo "Host: ${SERVER_HOST}"
|
||||
echo "Port: ${SERVER_PORT}"
|
||||
echo "Username: ${SERVER_USERNAME}"
|
||||
echo "RemoteRoot: ${REMOTE_ROOT}"
|
||||
echo "TongWebHome: ${TONGWEB_HOME}"
|
||||
echo "AppName: ${APP_NAME}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "[1/4] 检查本地环境"
|
||||
ensure_command "mvn"
|
||||
ensure_command "python3"
|
||||
|
||||
echo "[2/4] 打包后端 war"
|
||||
(
|
||||
cd "${REPO_ROOT}"
|
||||
mvn -pl ruoyi-admin -am package -DskipTests
|
||||
)
|
||||
|
||||
WAR_PATH="${REPO_ROOT}/ruoyi-admin/target/ruoyi-admin.war"
|
||||
if [[ ! -f "${WAR_PATH}" ]]; then
|
||||
echo "未找到后端 war 包: ${WAR_PATH}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[3/4] 检查远端执行依赖"
|
||||
ensure_paramiko
|
||||
|
||||
echo "[4/4] 上传 war 并重启 TongWeb"
|
||||
python3 "${SCRIPT_DIR}/remote-deploy-tongweb.py" \
|
||||
--host "${SERVER_HOST}" \
|
||||
--port "${SERVER_PORT}" \
|
||||
--username "${SERVER_USERNAME}" \
|
||||
--password "${SERVER_PASSWORD}" \
|
||||
--local-war "${WAR_PATH}" \
|
||||
--remote-root "${REMOTE_ROOT}" \
|
||||
--tongweb-home "${TONGWEB_HOME}" \
|
||||
--app-name "${APP_NAME}"
|
||||
Reference in New Issue
Block a user