File size: 1,583 Bytes
7ccd501
 
 
a6e6a7c
 
585bc48
8775295
 
 
 
585bc48
 
a6e6a7c
 
585bc48
 
d7edb12
585bc48
 
8775295
7ccd501
 
a6e6a7c
585bc48
 
a6e6a7c
585bc48
 
7ccd501
8775295
a6e6a7c
585bc48
 
a6e6a7c
585bc48
 
7ccd501
8775295
 
 
7ccd501
 
 
585bc48
7ccd501
8775295
7ccd501
 
 
8775295
7ccd501
 
8775295
 
7ccd501
8775295
7ccd501
 
8775295
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# 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"