MohammadReza-Halakoo commited on
Commit
a0e43f6
·
verified ·
1 Parent(s): 8936a61

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +28 -16
Dockerfile CHANGED
@@ -1,19 +1,14 @@
 
1
  FROM python:3.11-slim
2
 
3
  WORKDIR /app
4
 
5
- # خاموش کردن telemetry/usage stats
6
- ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
7
- ENV STREAMLIT_TELEMETRY_OPT_OUT=true
8
-
9
- # HOME را به مسیر قابل‌نوشتن ببریم
10
- ENV HOME=/app
11
-
12
- # دایرکتوری‌های لازم + پرمیشن
13
- RUN mkdir -p /app/.streamlit && \
14
- chmod -R 777 /app/.streamlit && \
15
- mkdir -p /tmp/.streamlit && chmod -R 777 /tmp/.streamlit
16
 
 
17
  RUN apt-get update && apt-get install -y --no-install-recommends \
18
  build-essential \
19
  curl \
@@ -21,17 +16,34 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
21
  libgl1 \
22
  libglib2.0-0 \
23
  tesseract-ocr \
 
24
  libtesseract-dev \
25
  && rm -rf /var/lib/apt/lists/*
26
 
27
- RUN python -m pip install --upgrade pip setuptools wheel
 
 
28
 
 
29
  COPY requirements.txt ./
30
- RUN pip install --no-cache-dir -r requirements.txt
31
-
 
 
 
 
 
 
 
 
 
 
 
32
  COPY . .
33
 
 
34
  EXPOSE 8501
35
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health || exit 1
36
 
37
- ENTRYPOINT ["streamlit","run","app.py","--server.port=8501","--server.address=0.0.0.0"]
 
 
1
+ # ===== Dockerfile نهایی برای HF Spaces / Streamlit =====
2
  FROM python:3.11-slim
3
 
4
  WORKDIR /app
5
 
6
+ # محیط‌های لازم
7
+ ENV HOME=/app \
8
+ STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \
9
+ STREAMLIT_TELEMETRY_OPT_OUT=true
 
 
 
 
 
 
 
10
 
11
+ # دیپندنسی‌های سیستمی: OpenCV + Tesseract (با فارسی) + ابزار Build
12
  RUN apt-get update && apt-get install -y --no-install-recommends \
13
  build-essential \
14
  curl \
 
16
  libgl1 \
17
  libglib2.0-0 \
18
  tesseract-ocr \
19
+ tesseract-ocr-fas \
20
  libtesseract-dev \
21
  && rm -rf /var/lib/apt/lists/*
22
 
23
+ # دایرکتوری‌های قابل‌نوشتن برای Streamlit
24
+ RUN mkdir -p /app/.streamlit /tmp/.streamlit && \
25
+ chmod -R 777 /app/.streamlit /tmp/.streamlit
26
 
27
+ # نصب پایتون‌پکیج‌ها
28
  COPY requirements.txt ./
29
+ RUN python -m pip install --upgrade pip setuptools wheel && \
30
+ pip install --no-cache-dir -r requirements.txt
31
+
32
+ # تنظیمات Streamlit: خاموش کردن XSRF/CORS و افزایش سقف آپلود
33
+ RUN printf "[server]\n\
34
+ headless = true\n\
35
+ enableXsrfProtection = false\n\
36
+ enableCORS = false\n\
37
+ maxUploadSize = 200\n\n\
38
+ [browser]\n\
39
+ gatherUsageStats = false\n" > /app/.streamlit/config.toml
40
+
41
+ # کپی کل پروژه (app.py و …)
42
  COPY . .
43
 
44
+ # پورت (روی HF معمولاً PORT ست می‌شود؛ پیش‌فرض 8501)
45
  EXPOSE 8501
46
+ HEALTHCHECK CMD curl --fail http://localhost:${PORT:-8501}/_stcore/health || exit 1
47
 
48
+ # اجرای Streamlit
49
+ ENTRYPOINT ["bash","-lc","streamlit run app.py --server.port=${PORT:-8501} --server.address=0.0.0.0"]