Executor / Dockerfile
Soumik Bose
go
a6e6a7c
Raw
History Blame Contribute Delete
1.58 kB
# Use the official Python 3.11 slim image
FROM python:3.11-slim
# Install system dependencies required for Math/Data libraries AND PDF Generation
# Added: libcairo2, libgdk-pixbuf-2.0-0 (CRITICAL for WeasyPrint/PDF generation)
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
gcc \
g++ \
libgomp1 \
libpango-1.0-0 \
libpangoft2-1.0-0 \
libcairo2 \
libgdk-pixbuf-2.0-0 \
libjpeg62-turbo-dev \
libopenjp2-7-dev \
libffi-dev \
fonts-dejavu \
fonts-liberation \
&& rm -rf /var/lib/apt/lists/*
# Set the working directory inside the container
# Added: /app/temp_reports
RUN mkdir -p /app/output \
/app/chat_pdfs \
/app/temp_reports \
/app/generated_charts \
/app/cache
# Create required directories with permissions
# Added: /app/temp_reports
RUN chmod -R 777 /app/output \
/app/chat_pdfs \
/app/temp_reports \
/app/generated_charts \
/app/cache
# Create log files
RUN touch /app/pandasai.log /app/api_key_rotation.log && \
chmod 666 /app/pandasai.log /app/api_key_rotation.log
# Set environment variables
ENV MPLCONFIGDIR=/app/cache
ENV PYTHONUNBUFFERED=1
# Copy requirements and install
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Ensure permissions
RUN chown -R 1000:1000 /app && chmod -R 777 /app
# Expose port
EXPOSE 7860
# CMD: Run the python script directly.
CMD bash -c "while true; do curl -s https://code-api-executor.hf.space/ping >/dev/null && sleep 300; done & python controller.py"