# Dockerfile # 1. Choose a base Python image FROM python:3.9-slim # 2. Set the working directory inside the container WORKDIR /code # 3. (Optional but recommended) Install system dependencies if needed # Example: If yt-dlp needs ffmpeg for specific audio conversions later RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg && apt-get clean && rm -rf /var/lib/apt/lists/* # 4. Copy the requirements file first (for Docker layer caching) COPY ./requirements.txt /code/requirements.txt # 5. Install Python dependencies RUN pip install --no-cache-dir --upgrade pip RUN pip install --no-cache-dir --requirement /code/requirements.txt # 6. Copy the rest of your application code into the container COPY . /code/ # For larger projects, you might copy specific files instead of '.' # 7. Expose the port the application will run on (HF Spaces expects 7860 usually) EXPOSE 7860 # 8. Specify the command to run your application using uvicorn # main: the Python file name (main.py) # app: the FastAPI instance variable name inside main.py (app = FastAPI()) # --host 0.0.0.0: Makes the server accessible from outside the container # --port 7860: The port to listen on CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]