# runtime Dockerfile 离线版本 v2
# 使用预装 APT 包的基础镜像

FROM datamate-runtime-base:latest

# 离线模式: 本地模型文件路径
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
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"]
