Dockerfile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. MIHOMO_BIN=/bin/mihomo
  10. # 安装依赖(移除 chromium / driver)
  11. RUN apt-get update && apt-get install -y --no-install-recommends \
  12. gzip \
  13. xz-utils \
  14. xvfb \
  15. xauth \
  16. fonts-noto-cjk \
  17. fonts-wqy-zenhei \
  18. procps \
  19. dumb-init \
  20. libgl1 \
  21. libglib2.0-0 \
  22. dbus \
  23. dbus-x11 \
  24. libnss3 \
  25. libnspr4 \
  26. libatk1.0-0 \
  27. libatk-bridge2.0-0 \
  28. libcups2 \
  29. libdrm2 \
  30. libxkbcommon0 \
  31. libxcomposite1 \
  32. libxdamage1 \
  33. libxfixes3 \
  34. libxrandr2 \
  35. libgbm1 \
  36. libasound2 \
  37. libpango-1.0-0 \
  38. libpangocairo-1.0-0 \
  39. && apt-get clean \
  40. && rm -rf /var/lib/apt/lists/*
  41. RUN dbus-uuidgen > /var/lib/dbus/machine-id
  42. WORKDIR /app
  43. # 复制并解压 chromium
  44. COPY downloads/ungoogled-chromium-144.0.7559.132-1-x86_64_linux.tar.xz /tmp/chrome.tar.xz
  45. RUN mkdir -p /opt/ungoogled-chromium && \
  46. tar -xJf /tmp/chrome.tar.xz -C /opt/ungoogled-chromium --strip-components=1 && \
  47. rm /tmp/chrome.tar.xz
  48. # 复制并解压 mihomo
  49. COPY downloads/mihomo-linux-amd64.gz /tmp/mihomo.gz
  50. RUN gzip -dc /tmp/mihomo.gz > /bin/mihomo && chmod +x /bin/mihomo && rm /tmp/mihomo.gz
  51. # 依赖安装
  52. COPY requirements.txt .
  53. RUN pip install --no-cache-dir -r requirements.txt
  54. # 启动脚本
  55. COPY entrypoint.sh /entrypoint.sh
  56. RUN chmod +x /entrypoint.sh
  57. # 项目代码
  58. COPY . .
  59. # 临时目录
  60. RUN mkdir -p /app/data/temp_browser_data && chmod 777 /app/data/temp_browser_data
  61. ENTRYPOINT ["/usr/bin/dumb-init", "--", "/entrypoint.sh"]