# Use an official Python runtime as a parent image FROM python:3.11-slim # Set environment variables for Hugging Face cache ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ TRANSFORMERS_CACHE=/app/cache \ HF_HOME=/app/cache \ NLTK_DATA=/app/nltk_data \ MPLCONFIGDIR=/app/.config/matplotlib COPY requirements.txt requirements.txt COPY templates/ /app/templates COPY utils/ /app/utils COPY app.py app.py COPY blocks/ /app/blocks/ COPY generated_projects/ /app/generated_projects/ COPY blocks/sprites/ /app/blocks/sprites/ COPY blocks/Backdrops/ /app/blocks/Backdrops/ COPY . /app/ COPY . . # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ tesseract-ocr \ poppler-utils \ libgl1 \ ffmpeg \ libopencv-dev \ curl \ ca-certificates \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* RUN pip install --upgrade pip && pip install -r requirements.txt RUN mkdir -p /app/nltk_data /app/.config/matplotlib \ && mkdir -p /app/cache /app/data /app/logs /app/OUTPUTS /app/blocks \ && mkdir -p /app/OUTPUTS/DETECTED_IMAGE /app/OUTPUTS/SCANNED_IMAGE /app/OUTPUTS/EXTRACTED_JSON \ && chmod -R 777 /app/cache /app/blocks /app/data /app/OUTPUTS /app/logs \ && chmod -R 777 /app ENV FLASK_APP=app.py \ FLASK_ENV=production EXPOSE 7860 #CMD ["gunicorn", "-w", "1", "-b", "0.0.0.0:7860", "--timeout", "0", "app:app"] CMD ["python", "app.py"]