|
|
|
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"] |