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/preview@0.11.2 \ && 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"]