| FROM python:3.11-slim as builder | |
| WORKDIR /code | |
| COPY --chown=1000 . . | |
| RUN apt-get update \ | |
| && apt-get install npm -y --no-install-recommends \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN python -m pip install --upgrade pip \ | |
| && python -m pip install build \ | |
| && python -m pip install -r /code/src/requirements.txt | |
| RUN cd /code/src \ | |
| && cd frontend \ | |
| && npm i -D @gradio/[email protected] \ | |
| && cd .. \ | |
| && rm -rf dist \ | |
| && gradio cc install \ | |
| && gradio cc build --bump-version | |
| FROM python:3.11-slim as final | |
| RUN groupadd -r appgroup \ | |
| && useradd -r -g appgroup -d /home/appuser -m appuser | |
| WORKDIR /home/appuser/app | |
| RUN mkdir -p /tmp/cache/ \ | |
| && chmod a+rwx -R /tmp/cache/ | |
| COPY --chown=appuser:appgroup . . | |
| COPY --from=builder --chown=appuser:appgroup /code/src/dist/*.whl ./ | |
| USER appuser | |
| ENV PATH="/home/appuser/.local/bin:$PATH" \ | |
| PYTHONPATH="/home/appuser/.local/lib/python3.11/site-packages" \ | |
| TRANSFORMERS_CACHE=/tmp/cache/ \ | |
| PYTHONUNBUFFERED=1 \ | |
| GRADIO_ALLOW_FLAGGING=never \ | |
| GRADIO_NUM_PORTS=1 \ | |
| GRADIO_SERVER_NAME=0.0.0.0 \ | |
| GRADIO_SERVER_PORT=7860 \ | |
| SYSTEM=spaces | |
| RUN python -m pip install --upgrade pip --no-cache-dir \ | |
| && python -m pip install ./gradio_highlightedtextbox*.whl --no-cache-dir | |
| EXPOSE 7860 | |
| CMD ["python", "app.py"] |