fix(browser): run camoufox fetch as root so geoip mmdb write succeeds — RED build-browser (#905) #908
1 changed files with 11 additions and 6 deletions
|
|
@ -25,14 +25,19 @@ RUN pip install --no-cache-dir "camoufox[geoip]"
|
||||||
|
|
||||||
COPY server.py ./server.py
|
COPY server.py ./server.py
|
||||||
|
|
||||||
# CRITICAL (#899): USER + ENV HOME должны быть установлены ДО fetch,
|
# camoufox fetch качает (а) Firefox-сборку и (б) GeoLite2 mmdb (geoip=True).
|
||||||
# чтобы Firefox-сборка легла в /home/app/.cache — туда же, куда рантайм её ищет.
|
# Firefox идёт в $HOME/.cache → ENV HOME=/home/app кладёт его в кэш app-юзера,
|
||||||
# Без этого fetch под root кладёт браузер в /root/.cache и app при старте
|
# куда рантайм его ищет (фикс #899). НО mmdb пишется в site-packages пакета
|
||||||
# не находит Firefox ("browser not found").
|
# camoufox (root-owned после pip install) — под app это PermissionError на
|
||||||
USER app
|
# GeoLite2-City.mmdb. Поэтому fetch выполняем под ROOT (пишет и mmdb, и —
|
||||||
|
# благодаря ENV HOME — Firefox в /home/app/.cache), затем chown'им Firefox-кэш
|
||||||
|
# на app. mmdb остаётся root-owned в site-packages (world-readable → app читает
|
||||||
|
# на рантайме). Verified реальной сборкой образа 2026-05-31.
|
||||||
ENV HOME=/home/app
|
ENV HOME=/home/app
|
||||||
|
|
||||||
RUN python -m camoufox fetch
|
RUN python -m camoufox fetch && chown -R app:app /home/app/.cache
|
||||||
|
|
||||||
|
USER app
|
||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue