Shubham170793 commited on
Commit
32a3bbb
·
verified ·
1 Parent(s): 0869ae7

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +48 -30
Dockerfile CHANGED
@@ -1,47 +1,65 @@
1
- # Use Python 3.10 (stable for faiss, pymupdf, transformers)
 
 
 
 
2
  FROM python:3.10-slim
3
 
4
- # Set work directory
 
 
5
  WORKDIR /app
6
 
7
- # -------------------------------
8
- # Environment & Streamlit Settings
9
- # -------------------------------
 
 
 
10
  ENV PYTHONUNBUFFERED=1 \
11
- PORT=8501 \
12
- HF_HOME=/tmp/hf_cache \
13
- TRANSFORMERS_CACHE=/tmp/hf_cache \
14
- HF_DATASETS_CACHE=/tmp/hf_cache \
15
- HF_MODULES_CACHE=/tmp/hf_cache \
16
- STREAMLIT_SERVER_ENABLECORS=true \
17
- STREAMLIT_SERVER_ENABLEXSRFPROTECTION=false \
18
- STREAMLIT_CLIENT_SHOWERRORDETAILS=true
19
-
20
- # -------------------------------
21
- # Install system dependencies
22
- # -------------------------------
23
  RUN apt-get update && apt-get install -y \
24
  build-essential \
25
  git \
26
  && rm -rf /var/lib/apt/lists/*
27
 
28
- # -------------------------------
29
- # Install Python dependencies
30
- # -------------------------------
31
  COPY requirements.txt .
 
 
 
 
32
  RUN pip install --no-cache-dir -r requirements.txt
33
 
34
- # -------------------------------
35
- # Copy all app code into container
36
- # -------------------------------
37
  COPY . .
38
 
39
- # -------------------------------
40
- # Expose Streamlit default port
41
- # -------------------------------
 
 
 
 
 
42
  EXPOSE 8501
43
 
44
- # -------------------------------
45
- # Launch Streamlit app
46
- # -------------------------------
47
- CMD ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
 
 
 
 
1
+ # ============================================================
2
+ # 🧩 Enterprise Knowledge Assistant — Hugging Face Space Dockerfile
3
+ # ============================================================
4
+
5
+ # ✅ Use Python 3.10 — stable for FAISS, PyMuPDF, Transformers
6
  FROM python:3.10-slim
7
 
8
+ # ------------------------------------------------------------
9
+ # 1️⃣ Set working directory
10
+ # ------------------------------------------------------------
11
  WORKDIR /app
12
 
13
+ # ------------------------------------------------------------
14
+ # 2️⃣ Environment variables
15
+ # ------------------------------------------------------------
16
+ # - PYTHONUNBUFFERED: ensures logs show up live
17
+ # - HF_*: route all Hugging Face model cache to writable folder (/app/hf_cache)
18
+ # - STREAMLIT server flags: make Streamlit work inside HF Space
19
  ENV PYTHONUNBUFFERED=1 \
20
+ HF_HOME=/app/hf_cache \
21
+ TRANSFORMERS_CACHE=/app/hf_cache \
22
+ HF_DATASETS_CACHE=/app/hf_cache \
23
+ HF_MODULES_CACHE=/app/hf_cache
24
+
25
+ # ------------------------------------------------------------
26
+ # 3️⃣ Install system dependencies
27
+ # ------------------------------------------------------------
 
 
 
 
28
  RUN apt-get update && apt-get install -y \
29
  build-essential \
30
  git \
31
  && rm -rf /var/lib/apt/lists/*
32
 
33
+ # ------------------------------------------------------------
34
+ # 4️⃣ Copy requirements first for Docker layer caching
35
+ # ------------------------------------------------------------
36
  COPY requirements.txt .
37
+
38
+ # ------------------------------------------------------------
39
+ # 5️⃣ Install Python dependencies
40
+ # ------------------------------------------------------------
41
  RUN pip install --no-cache-dir -r requirements.txt
42
 
43
+ # ------------------------------------------------------------
44
+ # 6️⃣ Copy the entire app
45
+ # ------------------------------------------------------------
46
  COPY . .
47
 
48
+ # ------------------------------------------------------------
49
+ # 7️⃣ Create cache folder with proper permissions
50
+ # ------------------------------------------------------------
51
+ RUN mkdir -p /app/hf_cache && chmod -R 777 /app/hf_cache
52
+
53
+ # ------------------------------------------------------------
54
+ # 8️⃣ Expose Streamlit’s default port
55
+ # ------------------------------------------------------------
56
  EXPOSE 8501
57
 
58
+ # ------------------------------------------------------------
59
+ # 9️⃣ Start Streamlit with flags to fix upload (403) and XSRF issues
60
+ # ------------------------------------------------------------
61
+ CMD ["streamlit", "run", "src/streamlit_app.py", \
62
+ "--server.port=8501", \
63
+ "--server.address=0.0.0.0", \
64
+ "--server.enableXsrfProtection=false", \
65
+ "--server.enableCORS=true"]