|
| 1 | +FROM python:3.11-slim-bookworm |
| 2 | + |
| 3 | +# 安装运行依赖 |
| 4 | +RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 5 | + fonts-liberation fonts-noto-cjk \ |
| 6 | + xvfb dbus dbus-x11 procps xdotool fluxbox \ |
| 7 | + libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \ |
| 8 | + libxkbcommon0 libxcomposite1 libxdamage1 libxrandr2 libgbm1 \ |
| 9 | + libpango-1.0-0 libcairo2 libasound2 libxshmfence1 \ |
| 10 | + && rm -rf /var/lib/apt/lists/* |
| 11 | + |
| 12 | +# 安装 CloakBrowser Python 包 |
| 13 | +RUN pip install --no-cache-dir cloakbrowser |
| 14 | + |
| 15 | +# 预下载二进制(ensure_binary 会在最后验证运行,build 阶段无 X11 会 segfault,忽略即可) |
| 16 | +RUN mkdir -p /opt/cloakbrowser \ |
| 17 | + && HOME=/opt/cloakbrowser python -c "from cloakbrowser import ensure_binary; ensure_binary()" || true |
| 18 | + |
| 19 | +# 创建软链接(二进制已下载到 /opt/cloakbrowser/.cloakbrowser/*/chrome) |
| 20 | +RUN CLOAK_BIN=$(find /opt/cloakbrowser -name "chrome" -type f | head -1) \ |
| 21 | + && echo "CloakBrowser binary: $CLOAK_BIN" \ |
| 22 | + && ln -sf "$CLOAK_BIN" /usr/local/bin/cloakbrowser-bin \ |
| 23 | + && chmod -R a+rX /opt/cloakbrowser |
| 24 | + |
| 25 | +# 生成 machine-id |
| 26 | +RUN dbus-uuidgen > /etc/machine-id |
| 27 | + |
| 28 | +# 预创建 X11 socket 目录 |
| 29 | +RUN mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix |
| 30 | + |
| 31 | +# 创建非 root 用户 |
| 32 | +RUN groupadd -r chrome && useradd -r -g chrome -G audio,video chrome \ |
| 33 | + && mkdir -p /home/chrome/extension /home/chrome/data \ |
| 34 | + && chown -R chrome:chrome /home/chrome |
| 35 | + |
| 36 | +# 复制插件文件 |
| 37 | +COPY chrome-extension/ /home/chrome/extension/ |
| 38 | +RUN chown -R chrome:chrome /home/chrome/extension |
| 39 | + |
| 40 | +# 复制启动脚本 |
| 41 | +COPY docker/entrypoint.captcha.sh /entrypoint.sh |
| 42 | +RUN chmod +x /entrypoint.sh |
| 43 | + |
| 44 | +ENV DISPLAY=:99 |
| 45 | +ENV WS_URL="" |
| 46 | +ENV AUTH_KEY="" |
| 47 | +ENV PROXY_URL="" |
| 48 | + |
| 49 | +USER chrome |
| 50 | +WORKDIR /home/chrome |
| 51 | + |
| 52 | +ENTRYPOINT ["/entrypoint.sh"] |
0 commit comments