|
|
|
|
|
FROM vllm/vllm-openai:v0.9.1 |
|
|
|
|
|
|
|
|
RUN pip3 install flash_attn==2.8.0.post2 |
|
|
RUN pip3 install transformers==4.51.3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RUN sed -i '/^from vllm\.entrypoints\.cli\.main import main$/a\ |
|
|
from DotsOCR import modeling_dots_ocr_vllm' $(which vllm) |
|
|
|
|
|
|
|
|
RUN grep -A 1 'from vllm.entrypoints.cli.main import main' $(which vllm) |
|
|
|
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
|
|
|
|
|
|
COPY start_server.sh /home/user/app/start_server.sh |
|
|
RUN chmod +x /home/user/app/start_server.sh |
|
|
|
|
|
|
|
|
USER user |
|
|
|
|
|
|
|
|
ENV HOME=/home/user \ |
|
|
PATH=/home/user/.local/bin:$PATH |
|
|
|
|
|
|
|
|
WORKDIR $HOME/app |
|
|
|
|
|
|
|
|
ENV HF_HUB_ENABLE_HF_TRANSFER=1 \ |
|
|
GIT_LFS_SKIP_SMUDGE=1 \ |
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 |
|
|
|
|
|
|
|
|
|
|
|
ARG MODEL_ID=rednote-hilab/dots.ocr |
|
|
RUN python3 - <<'PY' |
|
|
from huggingface_hub import snapshot_download |
|
|
import os |
|
|
|
|
|
|
|
|
model_path = snapshot_download( |
|
|
repo_id=os.environ.get("MODEL_ID", "rednote-hilab/dots.ocr"), |
|
|
allow_patterns=["*"] |
|
|
) |
|
|
print(f"Model downloaded to: {model_path}") |
|
|
|
|
|
with open("/home/user/app/model_path.txt", "w") as f: |
|
|
f.write(model_path) |
|
|
PY |
|
|
|
|
|
|
|
|
RUN HF_MODEL_PATH=$(cat /home/user/app/model_path.txt) && \ |
|
|
echo "export HF_MODEL_PATH=$HF_MODEL_PATH" >> /home/user/.bashrc && \ |
|
|
echo "export PYTHONPATH=\"$HF_MODEL_PATH:\$PYTHONPATH\"" >> /home/user/.bashrc |
|
|
|
|
|
|
|
|
ENV HF_MODEL_PATH=/home/user/.cache/huggingface/hub/models--rednote-hilab--dots.ocr |
|
|
ENV PYTHONPATH="/home/user/.cache/huggingface/hub/models--rednote-hilab--dots.ocr:${PYTHONPATH}" |
|
|
|
|
|
|
|
|
EXPOSE 7860 |
|
|
ENV PORT=7860 |
|
|
|
|
|
|
|
|
ENTRYPOINT ["/home/user/app/start_server.sh"] |