mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-06-14 03:32:00 +08:00
feat: 增加 CHINAMIRRO 构建环境变量
This commit is contained in:
@@ -19,6 +19,23 @@ ARCH_MAP=(
|
|||||||
build_arch() {
|
build_arch() {
|
||||||
local rust_target="$1"
|
local rust_target="$1"
|
||||||
|
|
||||||
|
case "${CHINAMIRRO:-}" in
|
||||||
|
1|true|TRUE|yes|YES|on|ON)
|
||||||
|
local cross_build_opts="${CROSS_BUILD_OPTS:+$CROSS_BUILD_OPTS }--build-arg CHINAMIRRO=1"
|
||||||
|
echo "=== China mirror acceleration: enabled (Tsinghua) ==="
|
||||||
|
echo "=== Building: $rust_target (via cross with custom Dockerfile) ==="
|
||||||
|
env \
|
||||||
|
CROSS_BUILD_OPTS="$cross_build_opts" \
|
||||||
|
CARGO_SOURCE_CRATES_IO_REPLACE_WITH=tuna \
|
||||||
|
CARGO_SOURCE_TUNA_REGISTRY=sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/ \
|
||||||
|
CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse \
|
||||||
|
RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup \
|
||||||
|
RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup \
|
||||||
|
cross build --release --target "$rust_target"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "=== Building: $rust_target (via cross with custom Dockerfile) ==="
|
echo "=== Building: $rust_target (via cross with custom Dockerfile) ==="
|
||||||
cross build --release --target "$rust_target"
|
cross build --release --target "$rust_target"
|
||||||
}
|
}
|
||||||
@@ -49,6 +66,7 @@ case "${1:-all}" in
|
|||||||
echo "Examples:"
|
echo "Examples:"
|
||||||
echo " $0 # Build all"
|
echo " $0 # Build all"
|
||||||
echo " $0 x86_64 # Build x86_64 only"
|
echo " $0 x86_64 # Build x86_64 only"
|
||||||
|
echo " CHINAMIRRO=1 $0 arm64 # Build with Tsinghua mirrors"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -6,16 +6,36 @@ FROM debian:11
|
|||||||
# Linux headers used by v4l2r bindgen
|
# Linux headers used by v4l2r bindgen
|
||||||
ARG LINUX_HEADERS_VERSION=6.6
|
ARG LINUX_HEADERS_VERSION=6.6
|
||||||
ARG LINUX_HEADERS_SHA256=
|
ARG LINUX_HEADERS_SHA256=
|
||||||
|
ARG CHINAMIRRO=0
|
||||||
|
|
||||||
# Set Rustup mirrors (Aliyun)
|
# Optionally use Tsinghua mirrors for builds in China.
|
||||||
#ENV RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup \
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
# RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup
|
sed -i \
|
||||||
|
-e 's|http://deb.debian.org/debian|http://mirrors.tuna.tsinghua.edu.cn/debian|g' \
|
||||||
|
-e 's|http://security.debian.org/debian-security|http://mirrors.tuna.tsinghua.edu.cn/debian-security|g' \
|
||||||
|
/etc/apt/sources.list; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Install Rust toolchain
|
# Install Rust toolchain
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
curl \
|
curl \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
mkdir -p /root/.cargo; \
|
||||||
|
printf '%s\n' \
|
||||||
|
'[source.crates-io]' \
|
||||||
|
"replace-with = 'tuna'" \
|
||||||
|
'[source.tuna]' \
|
||||||
|
'registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
'[registries.tuna]' \
|
||||||
|
'index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
> /root/.cargo/config.toml; \
|
||||||
|
fi \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||||
@@ -327,7 +347,11 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
|
|||||||
&& rm -rf /tmp/ffmpeg-build /tmp/aarch64-cross.txt /tmp/aarch64-pkg-config
|
&& rm -rf /tmp/ffmpeg-build /tmp/aarch64-cross.txt /tmp/aarch64-pkg-config
|
||||||
|
|
||||||
# Add Rust target
|
# Add Rust target
|
||||||
RUN rustup target add aarch64-unknown-linux-gnu
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
|
&& rustup target add aarch64-unknown-linux-gnu
|
||||||
|
|
||||||
# Configure environment for cross-compilation
|
# Configure environment for cross-compilation
|
||||||
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
|
ENV CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc \
|
||||||
|
|||||||
@@ -6,16 +6,36 @@ FROM debian:11
|
|||||||
# Linux headers used by v4l2r bindgen
|
# Linux headers used by v4l2r bindgen
|
||||||
ARG LINUX_HEADERS_VERSION=6.6
|
ARG LINUX_HEADERS_VERSION=6.6
|
||||||
ARG LINUX_HEADERS_SHA256=
|
ARG LINUX_HEADERS_SHA256=
|
||||||
|
ARG CHINAMIRRO=0
|
||||||
|
|
||||||
# Set Rustup mirrors (Aliyun)
|
# Optionally use Tsinghua mirrors for builds in China.
|
||||||
#ENV RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup \
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
# RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup
|
sed -i \
|
||||||
|
-e 's|http://deb.debian.org/debian|http://mirrors.tuna.tsinghua.edu.cn/debian|g' \
|
||||||
|
-e 's|http://security.debian.org/debian-security|http://mirrors.tuna.tsinghua.edu.cn/debian-security|g' \
|
||||||
|
/etc/apt/sources.list; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Install Rust toolchain
|
# Install Rust toolchain
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
curl \
|
curl \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
mkdir -p /root/.cargo; \
|
||||||
|
printf '%s\n' \
|
||||||
|
'[source.crates-io]' \
|
||||||
|
"replace-with = 'tuna'" \
|
||||||
|
'[source.tuna]' \
|
||||||
|
'registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
'[registries.tuna]' \
|
||||||
|
'index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
> /root/.cargo/config.toml; \
|
||||||
|
fi \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||||
@@ -316,7 +336,11 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
|
|||||||
&& rm -rf /tmp/ffmpeg-build /tmp/armhf-cross.txt /tmp/armhf-pkg-config
|
&& rm -rf /tmp/ffmpeg-build /tmp/armhf-cross.txt /tmp/armhf-pkg-config
|
||||||
|
|
||||||
# Add Rust target
|
# Add Rust target
|
||||||
RUN rustup target add armv7-unknown-linux-gnueabihf
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
|
&& rustup target add armv7-unknown-linux-gnueabihf
|
||||||
|
|
||||||
# Configure environment for cross-compilation
|
# Configure environment for cross-compilation
|
||||||
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
|
ENV CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=arm-linux-gnueabihf-gcc \
|
||||||
|
|||||||
@@ -6,16 +6,36 @@ FROM debian:11
|
|||||||
# Linux headers used by v4l2r bindgen
|
# Linux headers used by v4l2r bindgen
|
||||||
ARG LINUX_HEADERS_VERSION=6.6
|
ARG LINUX_HEADERS_VERSION=6.6
|
||||||
ARG LINUX_HEADERS_SHA256=
|
ARG LINUX_HEADERS_SHA256=
|
||||||
|
ARG CHINAMIRRO=0
|
||||||
|
|
||||||
# Set Rustup mirrors (Aliyun)
|
# Optionally use Tsinghua mirrors for builds in China.
|
||||||
#ENV RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup \
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
# RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup
|
sed -i \
|
||||||
|
-e 's|http://deb.debian.org/debian|http://mirrors.tuna.tsinghua.edu.cn/debian|g' \
|
||||||
|
-e 's|http://security.debian.org/debian-security|http://mirrors.tuna.tsinghua.edu.cn/debian-security|g' \
|
||||||
|
/etc/apt/sources.list; \
|
||||||
|
fi
|
||||||
|
|
||||||
# Install Rust toolchain
|
# Install Rust toolchain
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
curl \
|
curl \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable \
|
||||||
|
&& if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
mkdir -p /root/.cargo; \
|
||||||
|
printf '%s\n' \
|
||||||
|
'[source.crates-io]' \
|
||||||
|
"replace-with = 'tuna'" \
|
||||||
|
'[source.tuna]' \
|
||||||
|
'registry = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
'[registries.tuna]' \
|
||||||
|
'index = "sparse+https://mirrors.tuna.tsinghua.edu.cn/crates.io-index/"' \
|
||||||
|
> /root/.cargo/config.toml; \
|
||||||
|
fi \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
ENV PATH="/root/.cargo/bin:${PATH}"
|
||||||
@@ -221,7 +241,11 @@ RUN mkdir -p /tmp/ffmpeg-build && cd /tmp/ffmpeg-build \
|
|||||||
&& rm -rf /tmp/ffmpeg-build
|
&& rm -rf /tmp/ffmpeg-build
|
||||||
|
|
||||||
# Add Rust target
|
# Add Rust target
|
||||||
RUN rustup target add x86_64-unknown-linux-gnu
|
RUN if [ "$CHINAMIRRO" = "1" ]; then \
|
||||||
|
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup; \
|
||||||
|
export RUSTUP_UPDATE_ROOT=https://mirrors.tuna.tsinghua.edu.cn/rustup/rustup; \
|
||||||
|
fi \
|
||||||
|
&& rustup target add x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
# Configure environment for static linking
|
# Configure environment for static linking
|
||||||
ENV PKG_CONFIG_ALLOW_CROSS=1\
|
ENV PKG_CONFIG_ALLOW_CROSS=1\
|
||||||
|
|||||||
Reference in New Issue
Block a user