plan291037 commited on
Commit
d1a58fa
·
verified ·
1 Parent(s): 6cf23a0

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +14 -9
Dockerfile CHANGED
@@ -7,23 +7,28 @@ ENV PYTHONUNBUFFERED=1 \
7
  SELENIUM_MANAGER_CACHE_DIR=/home/user/.cache/selenium \
8
  TMPDIR=/tmp \
9
  PORT=7860 \
10
- DISPLAY=:99
 
 
 
 
11
 
 
12
  RUN apt-get update && apt-get install -y --no-install-recommends \
13
  xvfb \
14
- chromium chromium-driver \
15
- fonts-liberation ca-certificates \
16
- libnss3 libxss1 libasound2 libxshmfence1 libgbm1 \
17
- libgtk-3-0 libatk-bridge2.0-0 libatspi2.0-0 \
18
- libxcomposite1 libxrandr2 libxdamage1 libxfixes3 libxkbcommon0 \
19
  && rm -rf /var/lib/apt/lists/*
20
 
21
  RUN mkdir -p /home/user/.cache /home/user/.local /app && chmod -R 777 /home/user /tmp /app
22
-
23
  WORKDIR /app
 
24
  COPY requirements.txt /app/
25
  RUN pip install --no-cache-dir -r requirements.txt
26
 
 
27
  RUN python - <<'PY'
28
  import sysconfig, pathlib, os
29
  p = pathlib.Path(sysconfig.get_paths()['purelib'])/'seleniumbase'/'drivers'
@@ -33,5 +38,5 @@ PY
33
 
34
  COPY app.py /app/app.py
35
 
36
- CMD bash -lc 'Xvfb :99 -screen 0 1920x1080x24 -nolisten tcp -ac & \
37
- 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
+ # ให้ 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
 
26
  WORKDIR /app
27
+
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
 
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"]