FROM vllm/vllm-openai:v0.21.0 ENV DEBIAN_FRONTEND=noninteractive ENV PYTHONUNBUFFERED=1 ENV MODEL_NAME=numind/NuExtract3 ENV OPENAI_API_BASE=http://127.0.0.1:8000/v1 ENV OPENAI_API_KEY=EMPTY ENV GRADIO_SERVER_NAME=0.0.0.0 ENV GRADIO_SERVER_PORT=7860 ENV VLLM_PORT=8001 ENV MAX_MODEL_LEN=18000 ENV GPU_MEMORY_UTILIZATION=0.90 ENV NUEXTRACT_MAX_TOKENS=15000 ENV NUEXTRACT_EXAMPLE_DIR=/home/user/app/examples ENV NUEXTRACT_ASSETS_DIR=/home/user/app/assets ENV HF_HOME=/home/user/.cache/huggingface ENV HUGGINGFACE_HUB_CACHE=/home/user/.cache/huggingface/hub ENV TRANSFORMERS_CACHE=/home/user/.cache/huggingface ENV VLLM_CACHE_ROOT=/home/user/.cache/vllm ENV XDG_CACHE_HOME=/home/user/.cache RUN pip install --no-cache-dir \ gradio \ openai \ pillow RUN useradd -m -u 1000 user || true WORKDIR /home/user/app COPY --chown=user:user app.py /home/user/app/app.py COPY --chown=user:user start.sh /home/user/app/start.sh COPY --chown=user:user assets /home/user/app/assets COPY --chown=user:user examples /home/user/app/examples RUN mkdir -p \ /home/user/.cache/huggingface \ /home/user/.cache/huggingface/hub \ /home/user/.cache/vllm \ && chown -R user:user /home/user \ && chmod +x /home/user/app/start.sh USER user EXPOSE 7860 ENTRYPOINT [] CMD ["/bin/bash", "/home/user/app/start.sh"]