| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- FROM python:3.10-slim-bookworm
- # 设置环境变量
- ENV PYTHONDONTWRITEBYTECODE=1 \
- PYTHONUNBUFFERED=1 \
- TZ=Asia/Shanghai \
- LANG=C.UTF-8 \
- # 显式指定 Chromium 路径
- CHROME_BIN=/usr/bin/chromium \
- # 设置显示端口 (配合 Xvfb)
- DISPLAY=:99 \
- # 防止 XDG 目录报错
- XDG_CONFIG_HOME=/tmp/xdg_config
- # 1. 安装系统依赖
- # xvfb: 虚拟显示器
- # chromium: 浏览器
- # libgl1: opencv/ddddocr 必须的图形库依赖
- # dumb-init: 僵尸进程回收
- RUN apt-get update && apt-get install -y --no-install-recommends \
- chromium \
- chromium-driver \
- xvfb \
- xauth \
- fonts-noto-cjk \
- fonts-wqy-zenhei \
- procps \
- dumb-init \
- libgl1 \
- libglib2.0-0 \
- # --- 新增 DBus 依赖 ---
- dbus \
- dbus-x11 \
- # --- 原有的 Chromium 依赖 ---
- libnss3 \
- libnspr4 \
- libatk1.0-0 \
- libatk-bridge2.0-0 \
- libcups2 \
- libdrm2 \
- libxkbcommon0 \
- libxcomposite1 \
- libxdamage1 \
- libxfixes3 \
- libxrandr2 \
- libgbm1 \
- libasound2 \
- libpango-1.0-0 \
- libpangocairo-1.0-0 \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
- RUN dbus-uuidgen > /var/lib/dbus/machine-id
- # 2. 设置工作目录
- WORKDIR /app
- # 3. 复制依赖并安装
- COPY requirements.txt .
- # 使用清华源,并额外指定 torch 的源(如果是 requirements.txt 里写了 index-url 则这里不需要 -f)
- RUN pip install --no-cache-dir -r requirements.txt
- # 4. 复制启动脚本 (处理 Xvfb 锁文件)
- COPY entrypoint.sh /entrypoint.sh
- RUN chmod +x /entrypoint.sh
- # 5. 复制项目代码
- COPY . .
- # 6. 创建临时目录权限
- RUN mkdir -p /app/data/temp_browser_data && chmod 777 /app/data/temp_browser_data
- # 7. 入口点
- ENTRYPOINT ["/usr/bin/dumb-init", "--", "/entrypoint.sh"]
|