File size: 2,166 Bytes
6e426d3
64a5ea0
7ec4527
 
 
270a6f5
 
 
 
 
 
a0e43f6
1981928
6e426d3
 
 
604f80c
270a6f5
604f80c
270a6f5
 
604f80c
 
270a6f5
6e426d3
7ec4527
270a6f5
7ec4527
a0e43f6
 
 
270a6f5
 
a0e43f6
270a6f5
c3a07bc
7ec4527
1981928
270a6f5
1aef021
270a6f5
 
 
6e426d3
270a6f5
1aef021
64a5ea0
a0e43f6
1981928
270a6f5
a0e43f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# ===== Dockerfile برای HF Spaces / Streamlit (با مدل شخصی) =====
FROM python:3.11-slim

WORKDIR /app

# Env های ضروری و کش‌ها روی /tmp (قابل‌نوشتن)
ENV HOME=/tmp \
    HF_HOME=/tmp/hf_home \
    TRANSFORMERS_CACHE=/tmp/hf_home \
    STREAMLIT_CONFIG_DIR=/tmp/.streamlit \
    STREAMLIT_RUNTIME_DIR=/tmp/.streamlit \
    STREAMLIT_BROWSER_GATHER_USAGE_STATS=false \
    STREAMLIT_TELEMETRY_OPT_OUT=true \
    TRANSFORMERS_ATTENTION_BACKEND=eager \
    STREAMLIT_STATIC_DIR=/tmp/streamlit_static \
    MPLCONFIGDIR=/tmp/mpl

# سیستم‌دیپندنسی‌ها: OpenCV + Tesseract (با فارسی) + ابزار Build
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential curl git libgl1 libglib2.0-0 \
    tesseract-ocr tesseract-ocr-fas libtesseract-dev \
 && rm -rf /var/lib/apt/lists/*

# دایرکتوری‌های قابل‌نوشتن
RUN mkdir -p /tmp/.streamlit /tmp/hf_home /tmp/streamlit_static /tmp/mpl && chmod -R 777 /tmp

# پایتون‌دیپندنسی‌ها
COPY requirements.txt ./
RUN python -m pip install --upgrade pip setuptools wheel && \
    pip install --no-cache-dir -r requirements.txt

# کانفیگ Streamlit (غیرفعال کردن XSRF/CORS و افزایش سقف آپلود)
RUN printf "[server]\nheadless=true\nenableXsrfProtection=false\nenableCORS=false\nmaxUploadSize=200\n\n[browser]\ngatherUsageStats=false\n" > /tmp/.streamlit/config.toml

# کپی پروژه
COPY . .

# ---- تنظیم مدل شخصی (یکی را انتخاب کن) ----
# (A) اگر فولدر مدل را داخل ایمیج کپی می‌کنی:
# ENV TRUSTOCR_PATH=/app/models/TrustOCR
# (فولدر را در کنار همین Dockerfile اضافه کن)
#
# (B) اگر مدل در ریپوی خصوصی HF است:
# ENV TRUSTOCR_REPO=MohammadReza-Halakoo/TrustOCR
# و در Secrets فضای HF، مقدار HUGGINGFACE_HUB_TOKEN را ست کن.

EXPOSE 8501
HEALTHCHECK CMD curl --fail http://localhost:${PORT:-8501}/_stcore/health || exit 1

# اجرای Streamlit
ENTRYPOINT ["bash","-lc","streamlit run app.py --server.port=${PORT:-8501} --server.address=0.0.0.0"]