evalscope_v0.17.0/Dockerfile

74 lines
2.1 KiB
Docker
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

########################
# 1⃣ Build stage
########################
FROM python:3.10-slim AS builder
ENV DEBIAN_FRONTEND=noninteractive
# 安装系统依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends \
build-essential \
git \
unzip \
curl && \
rm -rf /var/lib/apt/lists/*
WORKDIR /build
# 拷贝 requirements 并安装依赖
COPY evalscope.0.17.0/requirements ./evalscope/requirements
# 更新 pip并提前装 antlr4-runtime
RUN pip install --upgrade pip setuptools wheel && \
pip install --no-cache-dir antlr4-python3-runtime==4.9.3
# 安装 EvalScope 所有依赖(使用默认 site-packages
RUN pip install --no-cache-dir \
-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
# 安装 EvalScope 本体
COPY evalscope.0.17.0/ ./evalscope
RUN pip install --no-cache-dir ./evalscope
# ✅ 安装 nltk 并下载 punkt 模型(到 /nltk_data
RUN pip install --no-cache-dir nltk && \
python3 -m nltk.downloader -d /nltk_data punkt
COPY punkt_tab.zip ./punkt_tab.zip
RUN mkdir -p /usr/local/nltk_data/tokenizers && \
unzip -q punkt_tab.zip -d /usr/local/nltk_data/tokenizers
# 拷贝入口文件
COPY gradio_ui.py .
########################
# 2⃣ Runtime stage
########################
FROM python:3.10-slim AS runtime
ENV DEBIAN_FRONTEND=noninteractive
# 拷贝构建阶段已安装内容
COPY --from=builder /usr/local /usr/local
COPY --from=builder /nltk_data /usr/local/nltk_data
COPY --from=builder /build/gradio_ui.py /app/gradio_ui.py
# 设置 NLTK 数据路径(可选但推荐)
ENV NLTK_DATA=/usr/local/nltk_data
WORKDIR /app
EXPOSE 7900 7901
# 防止 runtime 安装时产生缓存垃圾
ENV PIP_NO_CACHE_DIR=1
CMD ["python3", "gradio_ui.py"]