فهرست منبع

feat(deploy): 代理构建时自动切换官方源

- 有代理(HTTP_PROXY 非空):apt 走官方 Debian 源,pip 走官方 PyPI
- 无代理:apt 走阿里云镜像,pip 走清华镜像源
WangXuMing 1 ماه پیش
والد
کامیت
b2d7da6847
1فایلهای تغییر یافته به همراه18 افزوده شده و 7 حذف شده
  1. 18 7
      Dockerfile.base

+ 18 - 7
Dockerfile.base

@@ -22,9 +22,14 @@ ENV HTTP_PROXY=${HTTP_PROXY} \
     NO_PROXY=${NO_PROXY} \
     no_proxy=${no_proxy}
 
-# 替换为阿里云 apt 源(Debian 12 使用 DEB822 格式)
-RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources && \
-    sed -i 's|security.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources
+# 有代理时使用官方源,无代理时切换为国内镜像源
+RUN if [ -z "$HTTP_PROXY" ]; then \
+        echo "[INFO] 无代理,使用阿里云 apt 镜像源" && \
+        sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources && \
+        sed -i 's|security.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources; \
+    else \
+        echo "[INFO] 检测到代理配置,使用官方 Debian 源"; \
+    fi
 
 # 安装 OpenCV 系统依赖及 LibreOffice(docx/doc 转 PDF)
 # cache mount 避免每次重新下载 deb 包
@@ -70,9 +75,15 @@ RUN chmod 777 /tmp \
     && python -m venv /venv
 ENV PATH="/venv/bin:$PATH"
 
-# 安装 Python 依赖(cache mount 缓存 pip 下载,requirements.txt 不变时仅首次下载)
+# 安装 Python 依赖(cache mount 缓存 pip 下载)
+# 有代理时使用官方 PyPI,无代理时切换为清华镜像源
 COPY requirements.txt /tmp/
 RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \
-    /venv/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
-    && /venv/bin/pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn \
-    && /venv/bin/pip --default-timeout=1800 install -r /tmp/requirements.txt
+    if [ -z "$HTTP_PROXY" ]; then \
+        echo "[INFO] 无代理,使用清华 PyPI 镜像源" && \
+        /venv/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
+        /venv/bin/pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn; \
+    else \
+        echo "[INFO] 检测到代理配置,使用官方 PyPI 源"; \
+    fi && \
+    /venv/bin/pip --default-timeout=1800 install -r /tmp/requirements.txt