Sp2503 commited on
Commit
5b88ecf
Β·
verified Β·
1 Parent(s): 69e5845

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +43 -22
Dockerfile CHANGED
@@ -1,38 +1,59 @@
1
- # Use a lightweight Python base image
 
 
2
  FROM python:3.10-slim
3
 
4
- # Disable CUDA since we're using CPU-only
5
- ENV TORCH_DISABLE_CUDA=1
6
- ENV TRANSFORMERS_CACHE=/app/hf_cache
7
- ENV HF_HOME=/app/hf_cache
 
 
 
8
 
9
- # Set working directory
10
  WORKDIR /app
11
 
12
- # Copy dependency list
13
- COPY requirements.txt .
 
 
 
 
14
 
15
- # Install dependencies efficiently
16
- RUN apt-get update && apt-get install -y git && \
17
- pip install --no-cache-dir -r requirements.txt && \
18
- rm -rf /var/lib/apt/lists/*
 
19
 
20
- # Copy application code
 
 
21
  COPY . .
22
 
23
- # Make cache folder writable
 
 
24
  RUN mkdir -p /app/hf_cache && chmod -R 777 /app/hf_cache
25
 
26
- # Expose port
 
 
27
  EXPOSE 8080
28
 
29
- # Preload model embeddings (optional)
30
- # Commented out to speed up Cloud Build β€” will load at runtime in main.py
31
- # RUN python -c "import torch, pandas as pd; from sentence_transformers import SentenceTransformer; \
 
 
 
 
 
 
32
  # model = SentenceTransformer('./muril_combined_multilingual_model'); \
33
- # df = pd.read_csv('./muril_multilingual_dataset.csv').dropna(subset=['question','answer']); \
34
- # embeddings = model.encode(df['answer'].tolist(), convert_to_tensor=True); \
35
- # torch.save(embeddings, './answer_embeddings.pt'); print('βœ… Precomputed embeddings saved');"
36
 
37
- # Run the FastAPI app with uvicorn
 
 
38
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
 
1
+ # -------------------------------
2
+ # βœ… Base Image
3
+ # -------------------------------
4
  FROM python:3.10-slim
5
 
6
+ # -------------------------------
7
+ # βœ… Environment Setup
8
+ # -------------------------------
9
+ ENV PYTHONUNBUFFERED=1 \
10
+ TORCH_DISABLE_CUDA=1 \
11
+ TRANSFORMERS_CACHE=/app/hf_cache \
12
+ HF_HOME=/app/hf_cache
13
 
 
14
  WORKDIR /app
15
 
16
+ # -------------------------------
17
+ # βœ… System Dependencies
18
+ # -------------------------------
19
+ RUN apt-get update && apt-get install -y --no-install-recommends \
20
+ git \
21
+ && rm -rf /var/lib/apt/lists/*
22
 
23
+ # -------------------------------
24
+ # βœ… Install Python Dependencies
25
+ # -------------------------------
26
+ COPY requirements.txt .
27
+ RUN pip install --no-cache-dir -r requirements.txt
28
 
29
+ # -------------------------------
30
+ # βœ… Copy Application Files
31
+ # -------------------------------
32
  COPY . .
33
 
34
+ # -------------------------------
35
+ # βœ… Prepare Cache & Permissions
36
+ # -------------------------------
37
  RUN mkdir -p /app/hf_cache && chmod -R 777 /app/hf_cache
38
 
39
+ # -------------------------------
40
+ # βœ… Expose Port
41
+ # -------------------------------
42
  EXPOSE 8080
43
 
44
+ # -------------------------------
45
+ # βœ… Health-friendly Startup
46
+ # -------------------------------
47
+ # NOTE:
48
+ # Model & embeddings are loaded lazily in a background thread (main.py)
49
+ # so container becomes healthy immediately and avoids 30-min timeout.
50
+ #
51
+ # You can preload if you really want, but it’s slower on build:
52
+ # RUN python -c "from sentence_transformers import SentenceTransformer; \
53
  # model = SentenceTransformer('./muril_combined_multilingual_model'); \
54
+ # print('βœ… Model preloaded')"
 
 
55
 
56
+ # -------------------------------
57
+ # βœ… Start FastAPI with Uvicorn
58
+ # -------------------------------
59
  CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]