Dockerfile 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. FROM python:3.10-slim-bookworm
  2. ENV PYTHONDONTWRITEBYTECODE=1 \
  3. PYTHONUNBUFFERED=1 \
  4. TZ=Asia/Shanghai \
  5. LANG=C.UTF-8 \
  6. DISPLAY=:99 \
  7. XDG_CONFIG_HOME=/tmp/xdg_config \
  8. CHROME_BIN=/opt/ungoogled-chromium/chrome
  9. # 安装依赖(移除 chromium / driver)
  10. RUN apt-get update && apt-get install -y --no-install-recommends \
  11. xz-utils \
  12. xvfb \
  13. xauth \
  14. fonts-noto-cjk \
  15. fonts-wqy-zenhei \
  16. procps \
  17. dumb-init \
  18. libgl1 \
  19. libglib2.0-0 \
  20. dbus \
  21. dbus-x11 \
  22. libnss3 \
  23. libnspr4 \
  24. libatk1.0-0 \
  25. libatk-bridge2.0-0 \
  26. libcups2 \
  27. libdrm2 \
  28. libxkbcommon0 \
  29. libxcomposite1 \
  30. libxdamage1 \
  31. libxfixes3 \
  32. libxrandr2 \
  33. libgbm1 \
  34. libasound2 \
  35. libpango-1.0-0 \
  36. libpangocairo-1.0-0 \
  37. && apt-get clean \
  38. && rm -rf /var/lib/apt/lists/*
  39. RUN dbus-uuidgen > /var/lib/dbus/machine-id
  40. WORKDIR /app
  41. # 复制并解压 chromium
  42. COPY ungoogled-chromium-144.0.7559.132-1-x86_64_linux.tar.xz /tmp/chrome.tar.xz
  43. RUN mkdir -p /opt/ungoogled-chromium && \
  44. tar -xJf /tmp/chrome.tar.xz -C /opt/ungoogled-chromium --strip-components=1 && \
  45. rm /tmp/chrome.tar.xz
  46. # 依赖安装
  47. COPY requirements.txt .
  48. RUN pip install --no-cache-dir -r requirements.txt
  49. # 启动脚本
  50. COPY entrypoint.sh /entrypoint.sh
  51. RUN chmod +x /entrypoint.sh
  52. # 项目代码
  53. COPY . .
  54. # 临时目录
  55. RUN mkdir -p /app/data/temp_browser_data && chmod 777 /app/data/temp_browser_data
  56. ENTRYPOINT ["/usr/bin/dumb-init", "--", "/entrypoint.sh"]