plan291037 commited on
Commit
29596c9
·
verified ·
1 Parent(s): 990bdf1

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -14
Dockerfile CHANGED
@@ -7,19 +7,13 @@ ENV PYTHONUNBUFFERED=1 \
7
  SELENIUM_MANAGER_CACHE_DIR=/home/user/.cache/selenium \
8
  TMPDIR=/tmp \
9
  PORT=7860 \
10
- # ให้ lib ต่าง ๆ หา display ได้ (xvfb จะวิ่งที่ :99)
11
- DISPLAY=:99 \
12
- # ชี้ไปที่ chromium ที่ติดตั้งจาก apt
13
- CHROME_BIN=/usr/bin/chromium \
14
- CHROMIUM_BIN=/usr/bin/chromium
15
 
16
- # ติดตั้ง Xvfb + ไลบรารีกราฟิกที่ Chrome ต้องใช้
17
  RUN apt-get update && apt-get install -y --no-install-recommends \
18
- xvfb \
19
- chromium \
20
- # (แนะนำ) ตัด 'chromium-driver' ทิ้ง เพื่อลดโอกาส version mismatch กับ uc/driver manager
21
- fonts-liberation libgtk-3-0 libatk-bridge2.0-0 libgbm1 libnss3 libxss1 \
22
- libasound2 libxcomposite1 libxrandr2 libxdamage1 libxshmfence1 ca-certificates \
23
  && rm -rf /var/lib/apt/lists/*
24
 
25
  RUN mkdir -p /home/user/.cache /home/user/.local /app && chmod -R 777 /home/user /tmp /app
@@ -28,7 +22,7 @@ WORKDIR /app
28
  COPY requirements.txt /app/
29
  RUN pip install --no-cache-dir -r requirements.txt
30
 
31
- # (ไม่จำเป็นมาก แต่คงไว้ตามของเดิม)
32
  RUN python - <<'PY'
33
  import sysconfig, pathlib, os
34
  p = pathlib.Path(sysconfig.get_paths()['purelib'])/'seleniumbase'/'drivers'
@@ -38,5 +32,9 @@ PY
38
 
39
  COPY app.py /app/app.py
40
 
41
- # ครอบทั้งแอปด้วย Xvfb (จอเสมือน 1920x1080x24)
42
- CMD ["bash","-lc","xvfb-run -a --server-args='-screen 0 1920x1080x24' gunicorn -w 1 --threads 1 -k uvicorn.workers.UvicornWorker --bind 0.0.0.0:$PORT app:app"]
 
 
 
 
 
7
  SELENIUM_MANAGER_CACHE_DIR=/home/user/.cache/selenium \
8
  TMPDIR=/tmp \
9
  PORT=7860 \
10
+ DISPLAY=:99
 
 
 
 
11
 
12
+ # NOTE: ตัด chromium-driver ทิ้งเพื่อลดปัญหา version mismatch กับตัวจัดการไดรเวอร์ของ SeleniumBase/UC
13
  RUN apt-get update && apt-get install -y --no-install-recommends \
14
+ xvfb chromium \
15
+ libgtk-3-0 libatk-bridge2.0-0 libxcomposite1 libxrandr2 libxdamage1 \
16
+ libgbm1 libnss3 libxss1 libasound2 libxshmfence1 fonts-liberation ca-certificates \
 
 
17
  && rm -rf /var/lib/apt/lists/*
18
 
19
  RUN mkdir -p /home/user/.cache /home/user/.local /app && chmod -R 777 /home/user /tmp /app
 
22
  COPY requirements.txt /app/
23
  RUN pip install --no-cache-dir -r requirements.txt
24
 
25
+ # (คงไว้ตามของเดิม เพื่อโฟลเดอร์ drivers เขียนได้)
26
  RUN python - <<'PY'
27
  import sysconfig, pathlib, os
28
  p = pathlib.Path(sysconfig.get_paths()['purelib'])/'seleniumbase'/'drivers'
 
32
 
33
  COPY app.py /app/app.py
34
 
35
+ # entrypoint แบบชัด (เช็ค xvfb-run, echo แล้ว exec ด้วย set -x ให้เห็นคำสั่ง)
36
+ COPY start.sh /app/start.sh
37
+ RUN chmod +x /app/start.sh
38
+
39
+ # สำคัญ: ใส่ access/error logfile เป็น "-" เพื่อให้ไป stdout/stderr แล้ว HF เก็บ log ให้
40
+ CMD ["/app/start.sh"]