petter2025's picture
Update Dockerfile
7956bb0 verified
raw
history blame
3.34 kB
FROM python:3.10.16-slim
# Install system dependencies: git (already there) and ffmpeg (new)
RUN apt-get update && apt-get install -y git ffmpeg && rm -rf /var/lib/apt/lists/*
RUN python --version
WORKDIR /app
# Copy requirements and install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
# Copy all Space files
COPY . .
# --- Patch 1: Add missing constants ---
RUN CONSTANTS_FILE=$(find /usr/local/lib -name constants.py -path "*/agentic_reliability_framework/core/config/*") && \
echo "from typing import Final" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === PERFORMANCE CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "HISTORY_WINDOW: Final[int] = 50" >> $CONSTANTS_FILE && \
echo "MAX_EVENTS_STORED: Final[int] = 1000" >> $CONSTANTS_FILE && \
echo "AGENT_TIMEOUT_SECONDS: Final[int] = 5" >> $CONSTANTS_FILE && \
echo "CACHE_EXPIRY_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === FORECASTING CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "FORECAST_MIN_DATA_POINTS: Final[int] = 5" >> $CONSTANTS_FILE && \
echo "FORECAST_LOOKAHEAD_MINUTES: Final[int] = 15" >> $CONSTANTS_FILE && \
echo "SLOPE_THRESHOLD_INCREASING: Final[float] = 5.0" >> $CONSTANTS_FILE && \
echo "SLOPE_THRESHOLD_DECREASING: Final[float] = -2.0" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === THRESHOLD CONSTANTS ===" >> $CONSTANTS_FILE && \
echo "LATENCY_WARNING: Final[float] = 150.0" >> $CONSTANTS_FILE && \
echo "LATENCY_CRITICAL: Final[float] = 300.0" >> $CONSTANTS_FILE && \
echo "LATENCY_EXTREME: Final[float] = 500.0" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_WARNING: Final[float] = 0.05" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_HIGH: Final[float] = 0.15" >> $CONSTANTS_FILE && \
echo "ERROR_RATE_CRITICAL: Final[float] = 0.3" >> $CONSTANTS_FILE && \
echo "CPU_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \
echo "CPU_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \
echo "MEMORY_WARNING: Final[float] = 0.8" >> $CONSTANTS_FILE && \
echo "MEMORY_CRITICAL: Final[float] = 0.9" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === RATE LIMITING ===" >> $CONSTANTS_FILE && \
echo "MAX_REQUESTS_PER_MINUTE: Final[int] = 60" >> $CONSTANTS_FILE && \
echo "MAX_REQUESTS_PER_HOUR: Final[int] = 500" >> $CONSTANTS_FILE && \
echo "" >> $CONSTANTS_FILE && \
echo "# === BUSINESS METRICS ===" >> $CONSTANTS_FILE && \
echo "BASE_REVENUE_PER_MINUTE: Final[float] = 100.0" >> $CONSTANTS_FILE && \
echo "BASE_USERS: Final[int] = 1000" >> $CONSTANTS_FILE
# --- Patch 2: Add missing event.py ---
RUN mkdir -p /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models && \
cp event.py /usr/local/lib/python3.10/site-packages/agentic_reliability_framework/core/models/
# --- Patch 3: Replace engine.py with fixed version ---
RUN ENGINE_FILE=$(find /usr/local/lib -name engine.py -path "*/agentic_reliability_framework/runtime/*") && \
cp engine.py $ENGINE_FILE
# --- Patch 4: Add policy_engine.py to the Python path ---
# (Already in /app, which is in sys.path, so no extra step needed)
CMD ["python", "app.py"]