MOHAN799S commited on
Commit
e02d87c
Β·
1 Parent(s): 0793273

Fix: main:app -> app:app (renamed main.py to app.py)

Browse files
Files changed (1) hide show
  1. Dockerfile +9 -15
Dockerfile CHANGED
@@ -6,12 +6,6 @@
6
  FROM python:3.11-slim
7
 
8
  # ── System dependencies ───────────────────────────────────
9
- # ffmpeg β†’ pydub audio decode (webm/ogg/mp3 β†’ wav)
10
- # libsndfile1 β†’ soundfile (WAV/FLAC fallback)
11
- # libgl1-mesa-glx + libglib2.0-0 β†’ EasyOCR / OpenCV headless
12
- # libgomp1 β†’ PyTorch multi-threaded CPU ops
13
- # git β†’ HF model downloads via git-lfs if needed
14
- # curl β†’ health-check probes / HF API calls
15
  RUN apt-get update && apt-get install -y --no-install-recommends \
16
  ffmpeg \
17
  libsndfile1 \
@@ -25,8 +19,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
25
  # ── Create non-root user (HF Spaces requirement) ─────────
26
  RUN useradd -m -u 1000 appuser
27
 
28
- # ── Set working directory ─────────────────────────────────
29
- WORKDIR /app
 
30
 
31
  # ── Copy requirements first (layer cache) ────────────────
32
  COPY requirements.txt .
@@ -41,27 +36,26 @@ COPY --chown=appuser:appuser . .
41
  # ── Environment defaults (overridden by HF Secrets) ──────
42
  ENV PORT=7860
43
  ENV PYTHONUNBUFFERED=1
44
- ENV HF_HOME=/app/.cache/huggingface
45
 
46
  # ── Switch to non-root user ───────────────────────────────
47
  USER appuser
48
 
49
- # ── Expose port ───────────────────────────────────────────
50
  EXPOSE 7860
51
 
52
- # ── Healthcheck ───────────────────────────────────────────
53
  HEALTHCHECK --interval=60s --timeout=10s --start-period=120s --retries=3 \
54
  CMD curl -f http://localhost:7860/ || exit 1
55
 
56
- # ── Start server ──────────────────────────────────────────
57
- # 1 worker only β€” models are loaded once at startup (global state).
58
- # 600s timeout handles audio+image (Whisper large-v3 β‰ˆ 2-3 min on CPU).
59
  CMD ["gunicorn", \
60
  "--bind", "0.0.0.0:7860", \
61
  "--workers", "1", \
62
  "--timeout", "600", \
63
  "--keep-alive", "5", \
 
 
64
  "--log-level", "info", \
65
  "--access-logfile", "-", \
66
  "--error-logfile", "-", \
67
- "main:app"]
 
6
  FROM python:3.11-slim
7
 
8
  # ── System dependencies ───────────────────────────────────
 
 
 
 
 
 
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
  ffmpeg \
11
  libsndfile1 \
 
19
  # ── Create non-root user (HF Spaces requirement) ─────────
20
  RUN useradd -m -u 1000 appuser
21
 
22
+ # ── Set working directory inside user home ────────────────
23
+ # MUST be under /home/appuser β€” fixes "No module named main"
24
+ WORKDIR /home/appuser/app
25
 
26
  # ── Copy requirements first (layer cache) ────────────────
27
  COPY requirements.txt .
 
36
  # ── Environment defaults (overridden by HF Secrets) ──────
37
  ENV PORT=7860
38
  ENV PYTHONUNBUFFERED=1
39
+ ENV HF_HOME=/home/appuser/.cache/huggingface
40
 
41
  # ── Switch to non-root user ───────────────────────────────
42
  USER appuser
43
 
 
44
  EXPOSE 7860
45
 
 
46
  HEALTHCHECK --interval=60s --timeout=10s --start-period=120s --retries=3 \
47
  CMD curl -f http://localhost:7860/ || exit 1
48
 
49
+ # --worker-tmp-dir /tmp β†’ fixes "Permission denied" on gunicorn control socket
50
+ # --chdir β†’ ensures main.py is found at cwd
 
51
  CMD ["gunicorn", \
52
  "--bind", "0.0.0.0:7860", \
53
  "--workers", "1", \
54
  "--timeout", "600", \
55
  "--keep-alive", "5", \
56
+ "--worker-tmp-dir", "/tmp", \
57
+ "--chdir", "/home/appuser/app", \
58
  "--log-level", "info", \
59
  "--access-logfile", "-", \
60
  "--error-logfile", "-", \
61
+ "app:app"]