From c3044dbf69b6a658f9c2529dfc0e3f7fff572974 Mon Sep 17 00:00:00 2001 From: yml2213 Date: Sun, 12 Jul 2026 19:48:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E5=8A=A0=E9=80=9F=E5=9C=B0?= =?UTF-8?q?=E5=9D=80.=E8=85=BE=E8=AE=AF=E4=BA=91-=E9=98=BF=E9=87=8C?= =?UTF-8?q?=E4=BA=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4700612..2453adc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,17 +3,22 @@ FROM node:20-slim AS frontend-builder WORKDIR /build COPY web/frontend/package.json web/frontend/package-lock.json* ./ -RUN npm ci || npm install +# 优先 npmmirror,失败时回退官方 registry +RUN npm config set registry https://registry.npmmirror.com && \ + (npm ci || npm install) || \ + (npm config set registry https://registry.npmjs.org && (npm ci || npm install)) COPY web/frontend/ ./ RUN npm run build # ===== 阶段2: Python 运行时 ===== FROM python:3.12-slim AS runtime -# 优先使用腾讯云镜像源加速;不可用时自动回退官方源。 +# 优先阿里云内网镜像,其次公网阿里云,最后官方源。 RUN cp /etc/apt/sources.list.d/debian.sources /tmp/debian.sources && \ - sed -i 's/deb.debian.org/mirrors.tencentyun.com/g' /etc/apt/sources.list.d/debian.sources && \ + sed -i 's/deb.debian.org/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list.d/debian.sources && \ (apt-get update -o APT::Update::Error-Mode=any || \ + (sed -i 's/mirrors.cloud.aliyuncs.com/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \ + apt-get update -o APT::Update::Error-Mode=any) || \ (cp /tmp/debian.sources /etc/apt/sources.list.d/debian.sources && \ apt-get update -o APT::Update::Error-Mode=any)) && \ apt-get install -y --no-install-recommends \ @@ -22,15 +27,19 @@ RUN cp /etc/apt/sources.list.d/debian.sources /tmp/debian.sources && \ nodejs \ && rm -rf /var/lib/apt/lists/* -# 安装 uv:优先腾讯云 PyPI,失败时回退默认 PyPI。 -RUN pip install -i https://mirrors.tencentyun.com/pypi/simple uv || pip install uv +# 安装 uv:优先阿里云内网 PyPI → 公网阿里云 → 官方。 +RUN pip install -i https://mirrors.cloud.aliyuncs.com/pypi/simple/ uv || \ + pip install -i https://mirrors.aliyun.com/pypi/simple/ uv || \ + pip install uv WORKDIR /app # 先复制依赖文件,利用 Docker 缓存层 COPY pyproject.toml uv.lock* README.md alembic.ini ./ RUN uv venv /app/.venv && \ - (UV_INDEX_URL=https://mirrors.tencentyun.com/pypi/simple uv pip install -e . || uv pip install -e .) + (UV_INDEX_URL=https://mirrors.cloud.aliyuncs.com/pypi/simple/ uv pip install -e . || \ + UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ uv pip install -e . || \ + uv pip install -e .) # 复制项目代码 COPY core/ ./core/