Spaces:
Runtime error
Runtime error
| # Use an official Python runtime as a parent image | |
| FROM python:3.9-slim | |
| # Set environment variables to ensure Python output is unbuffered (helps with logging) | |
| ENV PYTHONUNBUFFERED=1 | |
| # Install system dependencies that might be needed by Pillow or other libraries | |
| # gcc and python3-dev are for compiling C extensions if wheels are not available | |
| # libjpeg-dev, zlib1g-dev are common for Pillow's JPEG and PNG support | |
| # build-essential includes gcc, g++, make, etc. | |
| RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \ | |
| build-essential \ | |
| python3-dev \ | |
| libjpeg-dev \ | |
| zlib1g-dev \ | |
| && echo "System dependencies installed." \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Set the working directory in the container | |
| WORKDIR /app | |
| # Copy the requirements file first to leverage Docker cache | |
| COPY requirements.txt . | |
| # Install any needed packages specified in requirements.txt | |
| # Using --verbose can sometimes give more insight into pip errors | |
| RUN echo "Starting pip install..." && \ | |
| pip install --no-cache-dir --upgrade pip && \ | |
| pip install --no-cache-dir --verbose -r requirements.txt && \ | |
| echo "Pip install completed." | |
| # Copy all files from the build context (app.py, etc.) into the working directory | |
| COPY . . | |
| # Create necessary directories that the app will use | |
| # These directories will be relative to WORKDIR (/app) | |
| RUN echo "Creating directories: ./data ./downloads ./session" && \ | |
| mkdir -p ./data ./downloads ./session && \ | |
| echo "Setting permissions for directories..." && \ | |
| chmod -R 777 ./data ./downloads ./session && \ | |
| echo "Permissions set." | |
| # List contents of /app for debugging (check build logs for this output) | |
| RUN echo "Contents of /app:" && ls -la /app | |
| # Command to run the application when the container launches | |
| # The -u flag for python is equivalent to PYTHONUNBUFFERED=1 | |
| CMD ["python", "-u", "app.py"] | |