debug
This commit is contained in:
@@ -34,6 +34,8 @@ BASE_DIR="/opt/domaincheck"
|
||||
DOMAINCHECK_DIR="${BASE_DIR}/domainCheck"
|
||||
DOMAIN_API_DIR="${BASE_DIR}/domain-api"
|
||||
DOMAIN_WEB_DIR="${BASE_DIR}/domain-web"
|
||||
REPO_OWNER=""
|
||||
REPO_OWNER_HOME=""
|
||||
|
||||
if [[ "${DB_PASSWORD}" == "CHANGE_ME_DB_PASSWORD" ]]; then
|
||||
echo "请先修改配置文件中的必填项:DB_PASSWORD"
|
||||
@@ -47,8 +49,21 @@ if [[ ! -d "${REPO_DIR}/.git" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_OWNER="$(stat -c '%U' "${REPO_DIR}")"
|
||||
REPO_OWNER_HOME="$(getent passwd "${REPO_OWNER}" | cut -d: -f6)"
|
||||
if [[ -z "${REPO_OWNER}" || -z "${REPO_OWNER_HOME}" ]]; then
|
||||
echo "无法识别仓库属主或 HOME:${REPO_DIR}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
run_as_repo_owner() {
|
||||
local cmd="$1"
|
||||
runuser -u "${REPO_OWNER}" -- env HOME="${REPO_OWNER_HOME}" bash -lc "${cmd}"
|
||||
}
|
||||
|
||||
echo "已检测到仓库目录:${REPO_DIR}"
|
||||
echo "当前脚本不会执行任何 Git 命令。"
|
||||
echo "仓库属主:${REPO_OWNER}"
|
||||
echo "如需更新代码,请先手动切到仓库属主完成 git pull,再重新执行本脚本。"
|
||||
|
||||
mkdir -p "${BASE_DIR}"
|
||||
@@ -112,52 +127,53 @@ cat >"${DOMAIN_WEB_DIR}/.env.production" <<EOF
|
||||
VITE_API_BASE_URL=https://${API_DOMAIN}/api/v1
|
||||
EOF
|
||||
|
||||
cd "${DOMAIN_WEB_DIR}"
|
||||
NODE_READY=false
|
||||
chown "${REPO_OWNER}:${REPO_OWNER}" "${DOMAIN_WEB_DIR}/.env.production"
|
||||
|
||||
cd "${DOMAIN_WEB_DIR}"
|
||||
run_as_repo_owner "
|
||||
set -euo pipefail
|
||||
cd '${DOMAIN_WEB_DIR}'
|
||||
NODE_READY=false
|
||||
resolve_nvm_dir() {
|
||||
local candidate
|
||||
for candidate in \
|
||||
"${NODE_NVM_DIR}" \
|
||||
"${NVM_DIR:-}" \
|
||||
"/root/.nvm" \
|
||||
"/home/www/.nvm" \
|
||||
"/www/server/nvm" \
|
||||
"/usr/local/nvm"
|
||||
'${NODE_NVM_DIR}' \
|
||||
\"\${NVM_DIR:-}\" \
|
||||
'${REPO_OWNER_HOME}/.nvm' \
|
||||
'/home/www/.nvm' \
|
||||
'/www/server/nvm' \
|
||||
'/usr/local/nvm'
|
||||
do
|
||||
if [[ -n "${candidate}" && -s "${candidate}/nvm.sh" ]]; then
|
||||
echo "${candidate}"
|
||||
if [[ -n \"\${candidate}\" && -s \"\${candidate}/nvm.sh\" ]]; then
|
||||
echo \"\${candidate}\"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if RESOLVED_NVM_DIR="$(resolve_nvm_dir)"; then
|
||||
export NVM_DIR="${RESOLVED_NVM_DIR}"
|
||||
# shellcheck disable=SC1090
|
||||
source "${NVM_DIR}/nvm.sh"
|
||||
echo "检测到 nvm:${NVM_DIR}"
|
||||
nvm install "${NODE_VERSION}"
|
||||
nvm use "${NODE_VERSION}"
|
||||
if RESOLVED_NVM_DIR=\"\$(resolve_nvm_dir)\"; then
|
||||
export NVM_DIR=\"\${RESOLVED_NVM_DIR}\"
|
||||
source \"\${NVM_DIR}/nvm.sh\"
|
||||
echo '检测到 nvm:'\"\${NVM_DIR}\"
|
||||
nvm install '${NODE_VERSION}'
|
||||
nvm use '${NODE_VERSION}'
|
||||
NODE_READY=true
|
||||
elif command -v node >/dev/null 2>&1 && command -v npm >/dev/null 2>&1; then
|
||||
echo "未检测到 nvm,改用系统已安装的 node/npm"
|
||||
echo "当前 node 版本:$(node -v)"
|
||||
echo '未检测到 nvm,改用系统已安装的 node/npm'
|
||||
echo '当前 node 版本:'\"\$(node -v)\"
|
||||
NODE_READY=true
|
||||
fi
|
||||
|
||||
if [[ "${NODE_READY}" != "true" ]]; then
|
||||
echo "未找到可用的 Node 运行环境。"
|
||||
echo "请执行以下任一方案后重试:"
|
||||
echo "1. 用 root 安装 nvm,并确保 /root/.nvm/nvm.sh 存在"
|
||||
echo "2. 在 install_overseas_quick.conf 中填写 NODE_NVM_DIR,例如:/home/www/.nvm"
|
||||
echo "3. 预先安装系统全局 node 和 npm"
|
||||
if [[ \"\${NODE_READY}\" != 'true' ]]; then
|
||||
echo '未找到可用的 Node 运行环境。'
|
||||
echo '请执行以下任一方案后重试:'
|
||||
echo '1. 为仓库属主安装 nvm,并确保 ~/.nvm/nvm.sh 存在'
|
||||
echo '2. 在 install_overseas_quick.conf 中填写 NODE_NVM_DIR,例如:/home/www/.nvm'
|
||||
echo '3. 预先安装系统全局 node 和 npm'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
npm install
|
||||
npm run build
|
||||
"
|
||||
|
||||
cp "${DOMAIN_API_DIR}/deploy/multi-region/templates/domaincheck-api.env.example" /etc/default/domaincheck-api
|
||||
sed -i "s#^DOMAIN_ROOT=.*#DOMAIN_ROOT=${DOMAINCHECK_DIR}#" /etc/default/domaincheck-api
|
||||
|
||||
Reference in New Issue
Block a user