master
cysamurai 2 months ago
parent 7e04fb920b
commit 71af0f7597

@ -3,11 +3,33 @@
set -euo pipefail
cd /work
# npm 网络增强:默认使用官方 registry可通过 NPM_REGISTRY 覆盖;增加超时与重试,减少 ECONNRESET 失败概率。
npm config set registry "${NPM_REGISTRY:-https://registry.npmjs.org/}"
npm config set fetch-retries 5
npm config set fetch-retry-factor 2
npm config set fetch-retry-mintimeout 20000
npm config set fetch-retry-maxtimeout 120000
npm config set fetch-timeout 300000
for d in call-client broadcast-client; do
if [[ ! -f "$d/package.json" ]]; then
echo "错误: 缺少 /work/$d/package.json" >&2
exit 1
fi
(cd "$d" && npm ci)
(
cd "$d"
# npm ci 网络偶发抖动时最多重试 3 次
for i in 1 2 3; do
if npm ci; then
break
fi
if [[ "$i" -eq 3 ]]; then
echo "错误: $d npm ci 连续 3 次失败" >&2
exit 1
fi
echo "警告: $d npm ci 失败10 秒后重试($i/3..." >&2
sleep 10
done
)
done
exec bash /work/scripts/build-linux-deb-all.sh "$@"

@ -63,8 +63,15 @@ if ! apt-get install -y --no-install-recommends \
libssl-dev:arm64 libayatana-appindicator3-dev:arm64 librsvg2-dev:arm64
fi
# 为避免 NodeSource 在 multiarch 场景触发 python3 依赖解算冲突,直接使用 Ubuntu 官方 nodejs/npm。
apt-get install -y --no-install-recommends nodejs:amd64 npm:amd64
# Node.js 22不走 NodeSource apt避免 multiarch 下 python 依赖冲突)
NODE_VERSION="v22.16.0"
curl -fsSL "https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-linux-x64.tar.xz" -o /tmp/node.tar.xz
tar -xJf /tmp/node.tar.xz -C /opt
ln -sfn "/opt/node-${NODE_VERSION}-linux-x64" /opt/node
ln -sf /opt/node/bin/node /usr/local/bin/node
ln -sf /opt/node/bin/npm /usr/local/bin/npm
ln -sf /opt/node/bin/npx /usr/local/bin/npx
rm -f /tmp/node.tar.xz
export RUSTUP_HOME=/opt/rustup
export CARGO_HOME=/opt/cargo

@ -18,5 +18,6 @@ docker run --rm \
-w /work \
-e RUSTUP_HOME=/opt/rustup \
-e CARGO_HOME=/opt/cargo \
-e NPM_REGISTRY="${NPM_REGISTRY:-https://registry.npmjs.org/}" \
"$IMAGE_TAG" \
bash /work/scripts/docker/container-entry.sh "$@"

Loading…
Cancel
Save