Spaces:
Paused
Paused
Update Dockerfile
Browse files- 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
|
|
|
|
| 12 |
RUN apt-get update && apt-get install -y --no-install-recommends \
|
| 13 |
xvfb \
|
| 14 |
-
chromium
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 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 |
-
|
| 37 |
-
|
|
|
|
| 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"]
|