# Use Python 3.10 as base
FROM python:3.10-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
ffmpeg \
libsm6 \
libxext6 \
tesseract-ocr \
tesseract-ocr-eng \
imagemagick \
gcc \
g++ \
make \
cmake \
python3-dev \
curl \
&& rm -rf /var/lib/apt/lists/*
# Fix ImageMagick policy - USE # AS DELIMITER INSTEAD OF /
RUN if [ -f /etc/ImageMagick-6/policy.xml ]; then \
sed -i 's#<#<#g' /etc/ImageMagick-6/policy.xml; \
fi && \
if [ -f /etc/ImageMagick-7/policy.xml ]; then \
sed -i 's#<#<#g' /etc/ImageMagick-7/policy.xml; \
fi
# Set working directory
WORKDIR /app
# Copy requirements first (for Docker layer caching)
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Expose port 7860 (Hugging Face Spaces requirement)
EXPOSE 7860
# Run the application
CMD ["python", "app.py"]