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 \ | |
&& pip install build \ | |
&& pip install -r /code/src/requirements.txt | |
RUN cd /code/src \ | |
&& cd frontend \ | |
&& npm i -D @gradio/[email protected] \ | |
&& cd .. \ | |
&& gradio cc install \ | |
&& gradio cc build | |
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" \ | |
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 \ | |
&& pip install ./gradio_highlightedtextbox*.whl | |
EXPOSE 7860 | |
CMD ["python", "app.py"] | |