message / Dockerfile
hunian
fix(dockerfile): 清理 pycache 避免镜像缓存导致 import 旧路径
358516e
Raw
History Blame Contribute Delete
1.79 kB
FROM python:3.11-slim
# 安装 uv 和 Lightpanda 下载所需的基础工具。
RUN apt-get update && apt-get install -y curl ca-certificates tar gzip ffmpeg \
&& curl -LsSf https://astral.sh/uv/install.sh | sh \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV PATH="/root/.local/bin:$PATH"
# Lightpanda 配置(browser_mcp_plugin 使用)
ENV LIGHTPANDA_BINARY="/usr/local/bin/lightpanda"
ENV LIGHTPANDA_AUTOSTART="true"
ENV LIGHTPANDA_PORT="9222"
# HuggingFace 缓存目录(CPU-only Space 部署)
ENV HF_HOME="/app/data/huggingface"
ENV HF_HUB_CACHE="/app/data/huggingface/cache"
ENV HF_HUB_ENABLE_HF_TRANSFER="1"
# CPU-only 环境约束
ENV CUDA_VISIBLE_DEVICES=""
WORKDIR /app
# 安装 Python 依赖。
COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-dev
# 安装 Lightpanda 浏览器二进制(nightly release)。
# 说明:官方不提供 Windows 二进制;Linux x86_64 与 glibc 兼容;
# musl 系统(Alpine)需自行编译。
RUN curl -fL -o /usr/local/bin/lightpanda \
https://github.com/lightpanda-io/browser/releases/download/nightly/lightpanda-x86_64-linux \
&& chmod +x /usr/local/bin/lightpanda \
&& /usr/local/bin/lightpanda version || echo "lightpanda installed (version probe failed)"
# 复制前端构建产物(线下已构建)。
COPY dist/frontend/ ./dist/frontend/
# 复制应用代码。
COPY app/ ./app
COPY plugins/ ./plugins
# 清理 Python 字节码缓存(避免镜像缓存导致 import 旧路径)
RUN find /app -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true \
&& find /app -name "*.pyc" -delete 2>/dev/null || true
EXPOSE 7860
CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860", "--proxy-headers", "--forwarded-allow-ips", "*"]