Spaces:
Sleeping
Sleeping
# syntax=docker/dockerfile:1 | |
# Comments are provided throughout this file to help you get started. | |
# If you need more help, visit the Dockerfile reference guide at | |
# https://docs.docker.com/go/dockerfile-reference/ | |
# Want to help us make this template better? Share your feedback here: https://forms.gle/ybq9Krt8jtBL3iCk7 | |
ARG PYTHON_VERSION=3.9.0 | |
FROM python:${PYTHON_VERSION}-slim as base | |
# Prevents Python from writing pyc files. | |
# Keeps Python from buffering stdout and stderr to avoid situations where | |
# the application crashes without emitting any logs due to buffering. | |
ENV PYTHONUNBUFFERED=1 | |
WORKDIR /app | |
RUN useradd -m -s /bin/bash appuser && \ | |
# Give necessary permissions | |
chown -R appuser:appuser /app | |
USER appuser | |
ENV HOME=/home/appuser \ | |
PATH=/home/appuser/.local/bin:$PATH | |
ENV TRANSFORMERS_CACHE=$HOME/app/.cache/huggingface/hub | |
COPY --chown=appuser ./requirements.txt requirements.txt | |
RUN mkdir -p /app/.cache \ | |
&& chown -R appuser:appuser /app/.cache | |
# Download dependencies as a separate step to take advantage of Docker's caching. | |
# Leverage a cache mount to /root/.cache/pip to speed up subsequent builds. | |
# Leverage a bind mount to requirements.txt to avoid having to copy them into | |
# into this layer. | |
RUN python -m pip install --upgrade pip \ | |
&& pip install -r requirements.txt | |
# Copy the source code into the container. | |
COPY --chown=appuser . . | |
# Expose the port that the application listens on. | |
EXPOSE 7860 | |
# Run the application. | |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--reload"] | |