Spaces:
Sleeping
Sleeping
| # ===== 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"] | |