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"] | |