[fix] lps: 워커 이미지 chromium→google-chrome-stable 교체 (쿠팡 Akamai 지문 차단 회피)
This commit is contained in:
parent
b539e073cb
commit
f9d37e08f4
@ -4,13 +4,18 @@
|
|||||||
#
|
#
|
||||||
# 빌드/실행:
|
# 빌드/실행:
|
||||||
# docker compose build lps-worker && docker compose up -d lps-worker
|
# docker compose build lps-worker && docker compose up -d lps-worker
|
||||||
# 스텔스 참고: 로컬 Mac 은 실제 Chrome(channel=chrome), 컨테이너는 시스템 chromium(executable_path).
|
# 스텔스 참고: 로컬 Mac 은 실제 Chrome(channel=chrome), 컨테이너도 실제 google-chrome-stable(executable_path).
|
||||||
# 프로덕션에서 stealth 가 부족하면 amd64 이미지에 google-chrome-stable 설치 후 LPS_CHROME_CHANNEL=chrome 로 전환.
|
# 오픈소스 chromium 은 Akamai(쿠팡)가 지문으로 차단(실측: errors.edgesuite.net, IP 첫 요청부터) → 실제 Chrome 필수.
|
||||||
FROM python:3.14-slim
|
FROM python:3.14-slim
|
||||||
|
|
||||||
# chromium(런타임 의존성 apt 가 자동 해결) + Xvfb + 한글 폰트
|
# 실제 Chrome(구글 apt 저장소, amd64 전용) + Xvfb + 한글 폰트
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
RUN apt-get update && apt-get install -y --no-install-recommends wget gnupg \
|
||||||
chromium xvfb xauth fonts-nanum ca-certificates \
|
&& wget -qO- https://dl.google.com/linux/linux_signing_key.pub \
|
||||||
|
| gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg \
|
||||||
|
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome.gpg] http://dl.google.com/linux/chrome/deb/ stable main" \
|
||||||
|
> /etc/apt/sources.list.d/google-chrome.list \
|
||||||
|
&& apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
google-chrome-stable xvfb xauth fonts-nanum ca-certificates \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
@ -25,7 +30,7 @@ RUN cp config/config.local.toml.example config/config.local.toml
|
|||||||
|
|
||||||
ENV APP_ENV=local \
|
ENV APP_ENV=local \
|
||||||
PYTHONUNBUFFERED=1 \
|
PYTHONUNBUFFERED=1 \
|
||||||
LPS_CHROME_EXECUTABLE=/usr/bin/chromium \
|
LPS_CHROME_EXECUTABLE=/opt/google/chrome/chrome \
|
||||||
DISPLAY=:99 \
|
DISPLAY=:99 \
|
||||||
LPS_HEARTBEAT_FILE=/tmp/lps_worker_heartbeat
|
LPS_HEARTBEAT_FILE=/tmp/lps_worker_heartbeat
|
||||||
|
|
||||||
|
|||||||
@ -53,7 +53,7 @@ profile_dir = ".profiles" # Chrome 프로필 베이스. 영속 경로면
|
|||||||
job_deadline_sec = 300 # 잡 1건 처리 상한(크롤 행 방어). 0=무제한(테스트용)
|
job_deadline_sec = 300 # 잡 1건 처리 상한(크롤 행 방어). 0=무제한(테스트용)
|
||||||
shutdown_grace_sec = 60 # graceful 종료 유예 — docker stop_grace_period 를 이보다 길게
|
shutdown_grace_sec = 60 # graceful 종료 유예 — docker stop_grace_period 를 이보다 길게
|
||||||
chrome_channel = "chrome" # 로컬: 실제 Chrome
|
chrome_channel = "chrome" # 로컬: 실제 Chrome
|
||||||
chrome_executable = "" # 컨테이너: "/usr/bin/chromium" (설정 시 channel 무시)
|
chrome_executable = "" # 컨테이너: "/opt/google/chrome/chrome" (설정 시 channel 무시)
|
||||||
heartbeat_file = "/tmp/lps_worker_heartbeat" # Docker HEALTHCHECK 가 신선도 확인
|
heartbeat_file = "/tmp/lps_worker_heartbeat" # Docker HEALTHCHECK 가 신선도 확인
|
||||||
|
|
||||||
# 임계 알림 (AlertManager — 룰 의미는 docs/operations.md 표)
|
# 임계 알림 (AlertManager — 룰 의미는 docs/operations.md 표)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user