FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

# 安装 Python 3.10 和基础工具
RUN apt-get update && \
    apt-get install -y software-properties-common curl git && \
    add-apt-repository ppa:deadsnakes/ppa && \
    apt-get update && \
    apt-get install -y python3.10 python3.10-venv python3.10-dev python3-pip && \
    ln -sf python3.10 /usr/bin/python3 && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /app

# 拷贝源码（包含 requirements 子目录）
COPY evalscope.0.17.0/ ./evalscope
COPY gradio_ui.py .

# 升级 pip 工具
RUN pip install --upgrade pip setuptools wheel

# ✅ 安装所有模块依赖
RUN pip install \
    -r ./evalscope/requirements/framework.txt \
    -r ./evalscope/requirements/opencompass.txt \
    -r ./evalscope/requirements/vlmeval.txt \
    -r ./evalscope/requirements/aigc.txt \
    -r ./evalscope/requirements/app.txt \
    -r ./evalscope/requirements/dev.txt \
    -r ./evalscope/requirements/docs.txt \
    -r ./evalscope/requirements/perf.txt \
    -r ./evalscope/requirements/rag.txt && \
    pip install -e ./evalscope && \
    # ✅ 清理 pip 缓存
    rm -rf /root/.cache/pip

# 启动 Gradio 服务
CMD ["python3", "gradio_ui.py"]
