# Use an official Python runtime as a parent image FROM python:3.11-slim WORKDIR /app #add by P # 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 OUTPUTS/ /app/OUTPUTS 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 # Create necessary directories with correct permissions 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/logs /app/outputs /app/outputs/SCANNED_IMAGE /app/outputs/EXTRACTED_JSON /app/outputs/DETECTED_IMAGE \ && chmod -R 777 /app # Set Flask environment variables ENV FLASK_APP=app.py \ FLASK_ENV=production # Expose port and start application EXPOSE 7860 CMD ["python", "app.py"]