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