Binta26 commited on
Commit
a26bcb9
Β·
verified Β·
1 Parent(s): d6d6581

Upload Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +49 -0
Dockerfile ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ── Base image β€” Python 3.11 slim ─────────────────────────────────────────────
2
+ FROM python:3.11-slim
3
+
4
+ # ── System dependencies for OpenCV + WebRTC ───────────────────────────────────
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ libglib2.0-0 \
7
+ libgl1 \
8
+ libsm6 \
9
+ libxext6 \
10
+ libxrender-dev \
11
+ libgomp1 \
12
+ ffmpeg \
13
+ && rm -rf /var/lib/apt/lists/*
14
+
15
+ # ── Working directory ─────────────────────────────────────────────────────────
16
+ WORKDIR /app
17
+
18
+ # ── Copy requirements first (Docker cache layer) ──────────────────────────────
19
+ COPY requirements.txt .
20
+
21
+ # ── Install Python dependencies ───────────────────────────────────────────────
22
+ RUN pip install --no-cache-dir --upgrade pip && \
23
+ pip install --no-cache-dir -r requirements.txt
24
+
25
+ # ── Copy project files ────────────────────────────────────────────────────────
26
+ COPY . .
27
+
28
+ # ── Create necessary directories ──────────────────────────────────────────────
29
+ RUN mkdir -p logs results models data
30
+
31
+ # ── Hugging Face Spaces runs as user 1000 ─────────────────────────────────────
32
+ RUN useradd -m -u 1000 user
33
+ RUN chown -R user:user /app
34
+ USER user
35
+
36
+ # ── Expose Streamlit port ─────────────────────────────────────────────────────
37
+ EXPOSE 7860
38
+
39
+ # ── Streamlit config ──────────────────────────────────────────────────────────
40
+ ENV STREAMLIT_SERVER_PORT=7860
41
+ ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
42
+ ENV STREAMLIT_SERVER_HEADLESS=true
43
+ ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
44
+
45
+ # ── Launch ────────────────────────────────────────────────────────────────────
46
+ CMD ["streamlit", "run", "app.py", \
47
+ "--server.port=7860", \
48
+ "--server.address=0.0.0.0", \
49
+ "--server.headless=true"]