cysamurai 2 months ago
parent 7aba7972df
commit 150da44aa0

@ -3,6 +3,11 @@
set -euo pipefail
cd /work
BUILD_ARCH="${BUILD_ARCH:-all}"
ALLOW_RUNTIME_APT_FIX="${ALLOW_RUNTIME_APT_FIX:-0}"
CARGO_REGISTRY_MIRROR="${CARGO_REGISTRY_MIRROR:-https://rsproxy.cn/index/}"
CARGO_NET_RETRY="${CARGO_NET_RETRY:-8}"
CARGO_HTTP_TIMEOUT="${CARGO_HTTP_TIMEOUT:-120}"
CARGO_HTTP_MULTIPLEXING="${CARGO_HTTP_MULTIPLEXING:-false}"
# npm 网络增强:默认使用官方 registry可通过 NPM_REGISTRY 覆盖;增加超时与重试,减少 ECONNRESET 失败概率。
npm config set registry "${NPM_REGISTRY:-https://registry.npmjs.org/}"
@ -12,6 +17,25 @@ npm config set fetch-retry-mintimeout 20000
npm config set fetch-retry-maxtimeout 120000
npm config set fetch-timeout 300000
mkdir -p "${CARGO_HOME:-/opt/cargo}"
cat > "${CARGO_HOME:-/opt/cargo}/config.toml" <<EOF
[net]
retry = ${CARGO_NET_RETRY}
[http]
timeout = ${CARGO_HTTP_TIMEOUT}
multiplexing = ${CARGO_HTTP_MULTIPLEXING}
[registries.crates-io]
protocol = "sparse"
[source.crates-io]
replace-with = "mirror"
[source.mirror]
registry = "sparse+${CARGO_REGISTRY_MIRROR}"
EOF
ensure_amd64_deps() {
local x64_pc_dir="/usr/lib/x86_64-linux-gnu/pkgconfig"
local missing=0
@ -25,7 +49,13 @@ ensure_amd64_deps() {
return
fi
echo "==> 补齐 amd64 依赖(当前容器缺少 x86_64 pkg-config 文件)"
if [[ "$ALLOW_RUNTIME_APT_FIX" != "1" ]]; then
echo "错误: 缺少 amd64 依赖x86_64 pkg-config 文件不完整),且 ALLOW_RUNTIME_APT_FIX=0。" >&2
echo "请先重建镜像scripts/docker/Dockerfile或设置 ALLOW_RUNTIME_APT_FIX=1 允许运行时联网补依赖。" >&2
exit 1
fi
echo "==> 运行时补齐 amd64 依赖ALLOW_RUNTIME_APT_FIX=1"
apt-get update
apt-get install -y --no-install-recommends \
build-essential:amd64 pkg-config:amd64 patchelf:amd64 \
@ -49,7 +79,13 @@ ensure_arm64_deps() {
return
fi
echo "==> 补齐 arm64 交叉依赖(当前容器缺少 aarch64 pkg-config 文件)"
if [[ "$ALLOW_RUNTIME_APT_FIX" != "1" ]]; then
echo "错误: 缺少 arm64 交叉依赖aarch64 pkg-config 文件不完整),且 ALLOW_RUNTIME_APT_FIX=0。" >&2
echo "请先重建镜像scripts/docker/Dockerfile或设置 ALLOW_RUNTIME_APT_FIX=1 允许运行时联网补依赖。" >&2
exit 1
fi
echo "==> 运行时补齐 arm64 交叉依赖ALLOW_RUNTIME_APT_FIX=1"
apt-get update
apt-get install -y --no-install-recommends \
-o Dpkg::Options::="--force-overwrite" \

@ -13,6 +13,10 @@ APT_GPG_KEY_ID="${APT_GPG_KEY_ID:-com.jgzy.product}"
APT_GPG_AUTO_CREATE="${APT_GPG_AUTO_CREATE:-1}"
UBUNTU_MIRROR="${UBUNTU_MIRROR:-http://mirrors.aliyun.com/ubuntu}"
UBUNTU_PORTS_MIRROR="${UBUNTU_PORTS_MIRROR:-http://mirrors.aliyun.com/ubuntu-ports}"
CARGO_REGISTRY_MIRROR="${CARGO_REGISTRY_MIRROR:-https://rsproxy.cn/index/}"
CARGO_NET_RETRY="${CARGO_NET_RETRY:-8}"
CARGO_HTTP_TIMEOUT="${CARGO_HTTP_TIMEOUT:-120}"
CARGO_HTTP_MULTIPLEXING="${CARGO_HTTP_MULTIPLEXING:-false}"
PROJECT_ARGS=()
while (($# > 0)); do
@ -42,6 +46,10 @@ while (($# > 0)); do
APT_GPG_AUTO_CREATE=1/0 缺少签名密钥时自动创建(默认 1
UBUNTU_MIRROR=<url> 容器内 amd64 apt 源(默认阿里镜像)
UBUNTU_PORTS_MIRROR=<url> 容器内 arm64 apt 源(默认阿里镜像)
CARGO_REGISTRY_MIRROR=<url> Cargo 稀疏索引镜像(默认 rsproxy
CARGO_NET_RETRY=<n> Cargo 网络重试次数(默认 8
CARGO_HTTP_TIMEOUT=<s> Cargo 单请求超时秒数(默认 120
CARGO_HTTP_MULTIPLEXING=true/false Cargo HTTP/2 复用(默认 false
EOF
exit 0
;;
@ -117,6 +125,11 @@ if [[ "$RUN_MODE" == "docker" ]]; then
-e BUILD_ARCH=amd64 \
-e NPM_REGISTRY="${NPM_REGISTRY:-https://registry.npmjs.org/}" \
-e CLEAN_TAURI_TARGET="${CLEAN_TAURI_TARGET:-1}" \
-e CARGO_REGISTRY_MIRROR="$CARGO_REGISTRY_MIRROR" \
-e CARGO_NET_RETRY="$CARGO_NET_RETRY" \
-e CARGO_HTTP_TIMEOUT="$CARGO_HTTP_TIMEOUT" \
-e CARGO_HTTP_MULTIPLEXING="$CARGO_HTTP_MULTIPLEXING" \
-e ALLOW_RUNTIME_APT_FIX="${ALLOW_RUNTIME_APT_FIX:-0}" \
"$IMAGE_TAG" \
bash /work/scripts/docker/container-entry.sh "${SELECTED_PROJECTS[@]}"
@ -130,6 +143,11 @@ if [[ "$RUN_MODE" == "docker" ]]; then
-e BUILD_ARCH=arm64 \
-e NPM_REGISTRY="${NPM_REGISTRY:-https://registry.npmjs.org/}" \
-e CLEAN_TAURI_TARGET="${CLEAN_TAURI_TARGET:-1}" \
-e CARGO_REGISTRY_MIRROR="$CARGO_REGISTRY_MIRROR" \
-e CARGO_NET_RETRY="$CARGO_NET_RETRY" \
-e CARGO_HTTP_TIMEOUT="$CARGO_HTTP_TIMEOUT" \
-e CARGO_HTTP_MULTIPLEXING="$CARGO_HTTP_MULTIPLEXING" \
-e ALLOW_RUNTIME_APT_FIX="${ALLOW_RUNTIME_APT_FIX:-0}" \
"$IMAGE_TAG" \
bash /work/scripts/docker/container-entry.sh "${SELECTED_PROJECTS[@]}"
else
@ -143,6 +161,11 @@ else
-e BUILD_ARCH=arm64 \
-e NPM_REGISTRY="${NPM_REGISTRY:-https://registry.npmjs.org/}" \
-e CLEAN_TAURI_TARGET="${CLEAN_TAURI_TARGET:-1}" \
-e CARGO_REGISTRY_MIRROR="$CARGO_REGISTRY_MIRROR" \
-e CARGO_NET_RETRY="$CARGO_NET_RETRY" \
-e CARGO_HTTP_TIMEOUT="$CARGO_HTTP_TIMEOUT" \
-e CARGO_HTTP_MULTIPLEXING="$CARGO_HTTP_MULTIPLEXING" \
-e ALLOW_RUNTIME_APT_FIX="${ALLOW_RUNTIME_APT_FIX:-0}" \
"$IMAGE_TAG" \
bash /work/scripts/docker/container-entry.sh "${SELECTED_PROJECTS[@]}"
fi

Loading…
Cancel
Save