# ============================================================ # Worker Builder 基础镜像 # 预编译:编译工具 + 基础依赖 + Worker大包 # 当 requirements-base.txt 或 requirements-worker.txt 变更时重新构建 # 业务构建从此镜像开始,只需要安装业务依赖,节省15+分钟 # ============================================================ FROM git.xiaoxiajianji.com/xiaoxia/base/python:3.12-slim # 使用阿里云镜像加速 RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || \ sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list 2>/dev/null || true # 安装编译工具 RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ g++ \ python3-dev \ binutils \ && rm -rf /var/lib/apt/lists/* # 创建 venv RUN python -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" WORKDIR /tmp # 基础依赖(变化极少) COPY requirements-base.txt /tmp/requirements-base.txt RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \ pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \ -r /tmp/requirements-base.txt \ && rm /tmp/requirements-base.txt # Worker 大包(变化少) COPY requirements-worker.txt /tmp/requirements-worker.txt RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \ pip install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com \ -r /tmp/requirements-worker.txt \ && rm /tmp/requirements-worker.txt # 预先做一次 strip(基础层瘦身,业务层增量) RUN find /opt/venv -name "*.so" -type f -exec strip --strip-all {} \; 2>/dev/null || true