FROM python:3.11-slim AS base ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 \ MAX_WORKERS=4 \ CHAT_ENABLE_TTS_GUIDANCE=1 \ CHAT_TTS_VOICE=en-US-GuyNeural \ STREAMLIT_SERVER_PORT=8501 \ STREAMLIT_SERVER_ADDRESS=0.0.0.0 \ STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \ DAO_DEMO_MODE=1 \ DAO_RUNS_DIR=/app/kdd-benchmark/artifacts/runs \ DAO_OLIST_RUNS_DIR=/app/external_benchmarks/olist/artifacts/runs \ DAO_INPUT_DIR=/app/kdd-benchmark/input \ DAO_OUTPUT_DIR=/app/kdd-benchmark/artifacts/runs WORKDIR /app RUN apt-get update && apt-get install -y \ git \ ca-certificates \ build-essential \ curl \ openssl \ && rm -rf /var/lib/apt/lists/* RUN pip install --no-cache-dir uv COPY pyproject.toml uv.lock README.md ./ RUN mkdir -p src/data_agent_baseline && \ touch src/data_agent_baseline/__init__.py RUN uv sync --frozen --no-dev COPY . . RUN uv sync --frozen --no-dev RUN mkdir -p \ /app/kdd-benchmark/artifacts/runs \ /app/external_benchmarks/olist/artifacts/runs \ /app/kdd-benchmark/input \ /app/kdd-benchmark/output \ /output \ /logs EXPOSE 8501 CMD ["bash", "-lc", "cd /app && /app/.venv/bin/streamlit run src/data_agent_baseline/observatory/app.py --server.address 0.0.0.0 --server.port 8501 2>&1 | tee /logs/runtime.log"]