FROM vllm/vllm-openai:latest ENV DEBIAN_FRONTEND=noninteractive ENV PYTHONUNBUFFERED=1 ENV MODEL_NAME=NM-dev/NuExtract3.4_4B-RL-400 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=8000 ENV MAX_MODEL_LEN=8192 ENV GPU_MEMORY_UTILIZATION=0.90 ENV NUEXTRACT_MAX_TOKENS=5000 ENV NUEXTRACT_ASSETS_DIR=/home/user/app/assets ENV HF_HOME=/data/.cache/huggingface ENV TRANSFORMERS_CACHE=/data/.cache/huggingface ENV VLLM_CACHE_ROOT=/data/.cache/vllm 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 RUN chown -R user:user /home/user/app && \ chmod +x /home/user/app/start.sh USER user EXPOSE 7860 # Important: override vllm/vllm-openai's default entrypoint. ENTRYPOINT [] CMD ["/bin/bash", "/home/user/app/start.sh"]