Um34ER commited on
Commit
5c4d35f
Β·
verified Β·
1 Parent(s): 9c13c8e

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +27 -54
Dockerfile CHANGED
@@ -1,65 +1,38 @@
 
 
 
 
1
  FROM python:3.10-slim
2
 
3
- WORKDIR /app
4
-
5
- # System dependencies (including image codecs)
6
- RUN apt-get update && apt-get install -y \
7
- libgl1 \
8
- libglib2.0-0 \
9
- libgomp1 \
10
- libopenblas0 \
11
- libjpeg62-turbo \
12
- zlib1g \
13
  && rm -rf /var/lib/apt/lists/*
14
 
15
- # Create writable directories
16
- RUN mkdir -p /app/data /app/logs /.cache /.cache/paddlepaddle /.cache/huggingface \
17
- && chmod -R 777 /app/data /app/logs /.cache
18
 
 
19
  COPY requirements.txt .
 
 
20
 
21
- # Install PyTorch CPU first
22
- RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \
23
- pip install --no-cache-dir \
24
- torch==2.4.0+cpu \
25
- torchvision==0.19.0+cpu \
26
- --extra-index-url https://download.pytorch.org/whl/cpu && \
27
- pip install --no-cache-dir -r requirements.txt
28
-
29
- # Pre-download Qwen2-VL model (avoids first-request timeout)
30
- RUN python -c "from transformers import AutoModelForCausalLM, AutoProcessor; \
31
- AutoModelForCausalLM.from_pretrained('Qwen/Qwen2-VL-2B-Instruct', device_map='cpu'); \
32
- AutoProcessor.from_pretrained('Qwen/Qwen2-VL-2B-Instruct')" || echo "Pre-download skipped"
33
-
34
- COPY . .
35
 
36
- # Environment Variables
37
- ENV PYTHONUNBUFFERED=1
38
- ENV PORT=7860
39
- ENV TRANSFORMERS_CACHE=/.cache
40
- ENV HF_HOME=/.cache
41
- ENV EASYOCR_CACHE=/.cache
42
- ENV FEEDBACK_DATA_PATH=/app/data
43
- ENV PADDLE_DOWNLOAD_CACHE=/.cache/paddlepaddle
44
-
45
- # CPU Thread Optimization
46
- ENV OMP_NUM_THREADS=1
47
- ENV MKL_NUM_THREADS=1
48
- ENV OPENBLAS_NUM_THREADS=1
49
-
50
- # VLM Configuration
51
- ENV ENABLE_VLM=1
52
- ENV VLM_MODEL_ID=Qwen/Qwen2-VL-2B-Instruct
53
- ENV VLM_MAX_NEW_TOKENS=256
54
- ENV VLM_TIMEOUT_SECONDS=150
55
- ENV VLM_MEMORY_LIMIT_MB=12000
56
 
57
- # Disable Paddle (saves memory)
58
- ENV ENABLE_PADDLE=0
59
 
60
- EXPOSE 7860
 
 
 
 
61
 
62
- # Startup command
63
- CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", \
64
- "--workers", "1", \
65
- "--timeout-keep-alive", "300"]
 
1
+ # ─────────────────────────────────────────────────────────────────────────────
2
+ # Parchi OCR – Minimal CPU Edition
3
+ # Target: Hugging Face Spaces "CPU basic" (2 vCPU, 16 GB RAM)
4
+ # ─────────────────────────────────────────────────────────────────────────────
5
  FROM python:3.10-slim
6
 
7
+ # ── OS deps (OpenCV headless needs libgl, libglib) ───────────────────────────
8
+ RUN apt-get update && apt-get install -y --no-install-recommends \
9
+ libgl1 \
10
+ libglib2.0-0 \
11
+ libgomp1 \
 
 
 
 
 
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
+ # ── App directory ─────────────────────────────────────────────────────────────
15
+ WORKDIR /app
 
16
 
17
+ # ── Install Python deps ───────────────────────────────────────────────────────
18
  COPY requirements.txt .
19
+ RUN pip install --no-cache-dir --upgrade pip \
20
+ && pip install --no-cache-dir -r requirements.txt
21
 
22
+ # ── Copy source ───────────────────────────────────────────────────────────────
23
+ COPY app.py .
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
+ # ── HuggingFace Spaces expects port 7860 ──────────────────────────────────────
26
+ EXPOSE 7860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
+ # ── EasyOCR model cache dir (writable in HF Spaces) ──────────────────────────
29
+ ENV EASYOCR_MODULE_PATH=/tmp/easyocr_models
30
 
31
+ # ── CPU threading tuning (2 vCPU β†’ 2 threads each) ───────────────────────────
32
+ ENV OMP_NUM_THREADS=2
33
+ ENV MKL_NUM_THREADS=2
34
+ ENV OPENBLAS_NUM_THREADS=2
35
+ ENV NUMEXPR_NUM_THREADS=2
36
 
37
+ # ── Launch ────────────────────────────────────────────────────────────────────
38
+ CMD ["python", "app.py"]