You've already forked DataMate
feat(build): 添加离线构建支持
- 新增 build-offline.sh 脚本实现无网环境构建 - 添加离线版 Dockerfiles 使用本地资源替代网络下载 - 创建 export-cache.sh 脚本在有网环境预下载依赖 - 集成 Makefile.offline.mk 提供便捷的离线构建命令 - 添加详细的离线构建文档和故障排查指南 - 实现基础镜像、BuildKit 缓存和外部资源的一键打包
This commit is contained in:
54
scripts/offline/Dockerfile.runtime.offline
Normal file
54
scripts/offline/Dockerfile.runtime.offline
Normal file
@@ -0,0 +1,54 @@
|
||||
# runtime Dockerfile 离线版本
|
||||
# 修改点: 使用本地模型文件替代 wget 下载
|
||||
|
||||
FROM ghcr.nju.edu.cn/astral-sh/uv:python3.11-bookworm
|
||||
|
||||
# 配置 apt 阿里云镜像源
|
||||
RUN --mount=type=cache,target=/var/cache/apt \
|
||||
--mount=type=cache,target=/var/lib/apt \
|
||||
if [ -f /etc/apt/sources.list.d/debian.sources ]; then \
|
||||
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources; \
|
||||
elif [ -f /etc/apt/sources.list ]; then \
|
||||
sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list; \
|
||||
fi \
|
||||
&& apt update \
|
||||
&& apt install -y libgl1 libglib2.0-0 vim libmagic1 libreoffice dos2unix swig poppler-utils tesseract-ocr
|
||||
|
||||
# 离线模式: 本地模型文件路径
|
||||
ARG RESOURCES_DIR=./build-cache/resources
|
||||
ARG MODELS_DIR=${RESOURCES_DIR}/models
|
||||
|
||||
# 复制本地 PaddleOCR 模型(离线环境预先下载)
|
||||
RUN mkdir -p /home/models
|
||||
COPY ${MODELS_DIR}/ch_ppocr_mobile_v2.0_cls_infer.tar /home/models/
|
||||
RUN tar -xf /home/models/ch_ppocr_mobile_v2.0_cls_infer.tar -C /home/models
|
||||
|
||||
COPY runtime/python-executor /opt/runtime
|
||||
COPY runtime/ops /opt/runtime/datamate/ops
|
||||
COPY runtime/ops/user /opt/runtime/user
|
||||
COPY scripts/images/runtime/start.sh /opt/runtime/start.sh
|
||||
|
||||
ENV PYTHONPATH=/opt/runtime/datamate/
|
||||
ENV UV_EXTRA_INDEX_URL="https://download.pytorch.org/whl/cpu"
|
||||
ENV UV_INDEX_STRATEGY=unsafe-best-match
|
||||
# 配置 uv 使用阿里云 PyPI 镜像
|
||||
ENV UV_INDEX_URL="https://mirrors.aliyun.com/pypi/simple/"
|
||||
|
||||
WORKDIR /opt/runtime
|
||||
|
||||
# 复制本地 spaCy 模型(离线环境预先下载)
|
||||
COPY ${MODELS_DIR}/zh_core_web_sm-3.8.0-py3-none-any.whl /tmp/
|
||||
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv pip install -e .[all] --system \
|
||||
&& uv pip install -r /opt/runtime/datamate/ops/pyproject.toml --system \
|
||||
&& uv pip install /tmp/zh_core_web_sm-3.8.0-py3-none-any.whl --system \
|
||||
&& echo "/usr/local/lib/ops/site-packages" > /usr/local/lib/python3.11/site-packages/ops.pth
|
||||
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
|
||||
&& chmod +x /opt/runtime/start.sh \
|
||||
&& dos2unix /opt/runtime/start.sh
|
||||
|
||||
EXPOSE 8081
|
||||
|
||||
ENTRYPOINT ["/opt/runtime/start.sh"]
|
||||
Reference in New Issue
Block a user