# Use an official Python runtime as a parent image | |
FROM python:3.10-slim | |
# Set the working directory in the container | |
WORKDIR /code | |
# Set the Hugging Face cache directory to a writable location | |
ENV HF_HOME=/tmp/.cache/huggingface | |
# Copy the requirements file into the container at /code | |
COPY ./requirements.txt /code/requirements.txt | |
# Install any needed packages specified in requirements.txt | |
# --no-cache-dir: Disables the cache to keep the image size smaller | |
# --upgrade: Ensures pip is up to date | |
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt | |
# Copy the rest of the application's code into the container at /code | |
COPY . /code | |
# Expose the port the app will run on. Hugging Face Spaces uses 7860. | |
EXPOSE 7860 | |
# Command to run the app when the container launches. | |
# Uvicorn is the server that runs our FastAPI app. | |
# --host 0.0.0.0 makes the app accessible from outside the container. | |
# --port 7860 matches the exposed port. | |
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] |