DhirajBot / Dockerfile
swaroop77's picture
Update Dockerfile
a18f083 verified
# Use a Python base image suitable for slim deployments
FROM python:3.9-slim
# Set the working directory in the container
WORKDIR /app
# --- Handle caching for Sentence-Transformers and Hugging Face models ---
# Create a writable directory for the Hugging Face cache
# Ensure permissions allow the application user (root by default in this base image) to write
RUN mkdir -p /app/.cache && chmod 777 /app/.cache
# Set the environment variable to tell Hugging Face libraries where to cache models
ENV HUGGINGFACE_HUB_CACHE="/app/.cache"
# --- Install Dependencies ---
# Copy the requirements file first to leverage Docker cache layers
COPY requirements.txt .
# Install the Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# --- Copy Application Code ---
# Copy the rest of the application code into the working directory
# Explicitly copy directories to ensure they land in the correct place relative to /app
COPY app.py .
COPY templates /app/templates
COPY static /app/static
# Copy the README file - Corrected: comment moved to its own line
COPY README.md .
# --- Configure Application Startup ---
# Expose the port the Flask app will run on. Hugging Face Spaces Docker requires 7860.
EXPOSE 7860
# Define the command to run your application using Waitress
# Waitress serves the 'app' object from your 'app.py' file
# It listens on all interfaces (0.0.0.0) on port 7860
CMD ["waitress-serve", "--listen=0.0.0.0:7860", "app:app"]