|
@@ -1,3 +1,4 @@
|
|
|
|
|
+# syntax=docker/dockerfile:1
|
|
|
FROM python:3.12-slim
|
|
FROM python:3.12-slim
|
|
|
|
|
|
|
|
# 替换为阿里云 apt 源(Debian 12 使用 DEB822 格式)
|
|
# 替换为阿里云 apt 源(Debian 12 使用 DEB822 格式)
|
|
@@ -5,7 +6,10 @@ RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debia
|
|
|
sed -i 's|security.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
|
|
|
|
|
|
|
|
# 安装 OpenCV 系统依赖及 LibreOffice(docx/doc 转 PDF)
|
|
# 安装 OpenCV 系统依赖及 LibreOffice(docx/doc 转 PDF)
|
|
|
-RUN apt-get update && apt-get install -y \
|
|
|
|
|
|
|
+# 使用 cache mount 缓存 apt 包,避免每次重新下载
|
|
|
|
|
+RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
|
|
|
+ --mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
|
|
|
+ apt-get update && apt-get install -y \
|
|
|
# OpenCV 核心依赖
|
|
# OpenCV 核心依赖
|
|
|
libgl1 \
|
|
libgl1 \
|
|
|
libglib2.0-0 \
|
|
libglib2.0-0 \
|
|
@@ -35,8 +39,7 @@ RUN apt-get update && apt-get install -y \
|
|
|
libreoffice-core \
|
|
libreoffice-core \
|
|
|
# 中文字体(PDF 转换中文支持)
|
|
# 中文字体(PDF 转换中文支持)
|
|
|
fonts-wqy-zenhei \
|
|
fonts-wqy-zenhei \
|
|
|
- --no-install-recommends \
|
|
|
|
|
- && rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
+ --no-install-recommends
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
|
TZ=Asia/Shanghai
|
|
TZ=Asia/Shanghai
|
|
@@ -49,10 +52,11 @@ ENV PATH="/venv/bin:$PATH"
|
|
|
|
|
|
|
|
# 先复制 requirements 文件安装依赖(利用缓存)
|
|
# 先复制 requirements 文件安装依赖(利用缓存)
|
|
|
COPY requirements.txt /tmp/
|
|
COPY requirements.txt /tmp/
|
|
|
-RUN /venv/bin/pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
|
|
|
|
|
- && /venv/bin/pip config set install.trusted-host mirrors.aliyun.com \
|
|
|
|
|
- && /venv/bin/pip --default-timeout=1800 install -r /tmp/requirements.txt \
|
|
|
|
|
- && rm -rf /root/.cache
|
|
|
|
|
|
|
+# 使用 cache mount 缓存 pip 包,避免大依赖(torch/scipy 等)每次重新下载
|
|
|
|
|
+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
|
|
|
|
|
|
|
|
# 设置工作目录并复制项目文件
|
|
# 设置工作目录并复制项目文件
|
|
|
WORKDIR /app
|
|
WORKDIR /app
|