URL-To-Answer / Dockerfile
MohamedFahim's picture
Add application file
ee16852
# Use Python 3.12.3 as base image
FROM python:3.12.3-slim
# Set working directory
WORKDIR /app
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements and install Python dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy project files
COPY main_api.py .
COPY interface.py .
# Copy any other necessary files
COPY . .
# Note: Remove .env copy for HF Spaces - use HF Spaces secrets instead
# COPY .env .
# Expose port 7860 (required by Hugging Face Spaces)
EXPOSE 7860
# Create entry point script for HF Spaces
RUN echo '#!/bin/bash\n\
echo "Starting FastAPI server..."\n\
python main_api.py &\n\
echo "Waiting for FastAPI to start..."\n\
sleep 10\n\
echo "Starting Gradio interface..."\n\
python interface.py\n\
wait\n' > /app/entrypoint.sh && \
chmod +x /app/entrypoint.sh
# Run both services
CMD ["/app/entrypoint.sh"]