Spaces:
Running
Running
| # Use the official Python image as the base | |
| FROM python:3.10 | |
| # Set working directory | |
| WORKDIR /app | |
| # Install system dependencies required for wkhtmltopdf | |
| RUN apt-get update && apt-get install -y \ | |
| libxrender1 \ | |
| libfontconfig1 \ | |
| libxext6 \ | |
| xvfb \ | |
| wget \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Manually download and install wkhtmltopdf 0.12.6 | |
| RUN wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb \ | |
| && dpkg -i wkhtmltox_0.12.6-1.buster_amd64.deb || apt-get update && apt-get install -f -y \ | |
| && rm wkhtmltox_0.12.6-1.buster_amd64.deb \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Debug: Verify wkhtmltopdf and wkhtmltoimage installation | |
| RUN wkhtmltopdf --version || { echo "wkhtmltopdf installation failed"; exit 1; } | |
| RUN wkhtmltoimage --version || { echo "wkhtmltoimage installation failed"; exit 1; } | |
| # Debug: List wkhtmltoimage binary locations | |
| RUN echo "Checking for wkhtmltoimage in common locations:" \ | |
| && ls -l /usr/local/bin/wkhtmltoimage 2>/dev/null || echo "/usr/local/bin/wkhtmltoimage not found" \ | |
| && ls -l /usr/bin/wkhtmltoimage 2>/dev/null || echo "/usr/bin/wkhtmltoimage not found" \ | |
| && ls -l /bin/wkhtmltoimage 2>/dev/null || echo "/bin/wkhtmltoimage not found" \ | |
| && find / -name wkhtmltoimage 2>/dev/null || echo "wkhtmltoimage not found anywhere" | |
| # Ensure wkhtmltoimage is in /usr/bin for consistency | |
| RUN if [ -f /usr/local/bin/wkhtmltoimage ]; then \ | |
| ln -sf /usr/local/bin/wkhtmltoimage /usr/bin/wkhtmltoimage && \ | |
| chmod +x /usr/bin/wkhtmltoimage; \ | |
| else \ | |
| echo "wkhtmltoimage not found in /usr/local/bin"; \ | |
| fi | |
| # Verify wkhtmltoimage in /usr/bin | |
| RUN ls -l /usr/bin/wkhtmltoimage 2>/dev/null || echo "/usr/bin/wkhtmltoimage not created" | |
| # Copy requirements.txt and install Python dependencies | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Copy the application code | |
| COPY schedule_generator.py . | |
| # Expose the port Gradio will run on | |
| EXPOSE 7860 | |
| # Set environment variables for Gradio | |
| ENV GRADIO_SERVER_NAME="0.0.0.0" | |
| ENV GRADIO_SERVER_PORT=7860 | |
| # Command to run the application | |
| CMD ["python", "schedule_generator.py"] |