部署选号网时无本机npm则改用Docker构建
服务器可不装Node,自动用node:24-alpine镜像执行npm ci/build。
This commit is contained in:
+1
-1
@@ -50,7 +50,7 @@ HFB_SHOW_DIR=../hfb_show
|
|||||||
要求:
|
要求:
|
||||||
|
|
||||||
1. 服务器上 `hfb_show` 与 `hfb_sys` 同级目录(或 `HFB_SHOW_DIR` 指向真实路径)。
|
1. 服务器上 `hfb_show` 与 `hfb_sys` 同级目录(或 `HFB_SHOW_DIR` 指向真实路径)。
|
||||||
2. 部署机可执行 `npm`(脚本会在 build Caddy 前构建选号网 dist)。
|
2. 部署机有 Docker 即可;**不必安装 Node/npm**(无 npm 时脚本用 `node:24-alpine` 容器构建选号网)。
|
||||||
3. 选号网域名 DNS 已指向本机。
|
3. 选号网域名 DNS 已指向本机。
|
||||||
|
|
||||||
一键脚本会自动:
|
一键脚本会自动:
|
||||||
|
|||||||
+25
-9
@@ -80,6 +80,7 @@ show_help() {
|
|||||||
选号网独立域名,A 记录指向本机;留空则不启用
|
选号网独立域名,A 记录指向本机;留空则不启用
|
||||||
HFB_SHOW_DIR=../hfb_show
|
HFB_SHOW_DIR=../hfb_show
|
||||||
选号网源码目录(相对 hfb_sys 根目录或绝对路径)
|
选号网源码目录(相对 hfb_sys 根目录或绝对路径)
|
||||||
|
构建优先用本机 npm;没有 npm 时自动用 Docker node 镜像,服务器不必装 Node
|
||||||
|
|
||||||
示例:
|
示例:
|
||||||
./scripts/deploy-prod.sh
|
./scripts/deploy-prod.sh
|
||||||
@@ -277,17 +278,32 @@ prepare_show_site() {
|
|||||||
fi
|
fi
|
||||||
log_warn "使用已有 show-dist(--no-build)"
|
log_warn "使用已有 show-dist(--no-build)"
|
||||||
else
|
else
|
||||||
need_cmd npm
|
# 服务器通常无本机 Node:优先本机 npm,否则用 Docker 内 node 镜像构建
|
||||||
log "构建选号网静态资源:${show_dir}"
|
log "构建选号网静态资源:${show_dir}"
|
||||||
(
|
if command -v npm >/dev/null 2>&1; then
|
||||||
cd "${show_dir}"
|
(
|
||||||
if [[ -f package-lock.json ]]; then
|
cd "${show_dir}"
|
||||||
npm ci
|
if [[ -f package-lock.json ]]; then
|
||||||
else
|
npm ci
|
||||||
npm install
|
else
|
||||||
|
npm install
|
||||||
|
fi
|
||||||
|
npm run build
|
||||||
|
)
|
||||||
|
else
|
||||||
|
log_warn "本机无 npm,使用 Docker 镜像 node:24-alpine 构建选号网(无需安装 Node)"
|
||||||
|
need_cmd docker
|
||||||
|
local npm_cmd="npm ci && npm run build"
|
||||||
|
if [[ ! -f "${show_dir}/package-lock.json" ]]; then
|
||||||
|
npm_cmd="npm install && npm run build"
|
||||||
fi
|
fi
|
||||||
npm run build
|
# 挂载源码目录;node_modules/dist 写在挂载卷上,与本机 npm 行为一致
|
||||||
)
|
docker run --rm \
|
||||||
|
-v "${show_dir}:/app" \
|
||||||
|
-w /app \
|
||||||
|
node:24-alpine \
|
||||||
|
sh -c "${npm_cmd}"
|
||||||
|
fi
|
||||||
if [[ ! -d "${show_dir}/dist" ]]; then
|
if [[ ! -d "${show_dir}/dist" ]]; then
|
||||||
log_error "选号网构建失败:未生成 dist/"
|
log_error "选号网构建失败:未生成 dist/"
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
Reference in New Issue
Block a user