Shashank2k3 commited on
Commit
1be6960
·
verified ·
1 Parent(s): 724a247

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +15 -5
Dockerfile CHANGED
@@ -1,21 +1,31 @@
1
  FROM python:3.12-slim
2
 
 
 
 
3
 
4
  WORKDIR /app
5
 
6
- RUN apt-get update && apt-get install -y \
 
7
  build-essential \
8
  curl \
9
  git \
10
  && rm -rf /var/lib/apt/lists/*
11
 
 
12
  COPY requirements.txt ./
13
- COPY src/ ./src/
 
14
 
15
- RUN pip3 install -r requirements.txt
 
 
16
 
17
  EXPOSE 8501
18
 
19
- HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
 
 
20
 
21
- ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
 
1
  FROM python:3.12-slim
2
 
3
+ ENV PIP_NO_CACHE_DIR=1 \
4
+ PYTHONDONTWRITEBYTECODE=1 \
5
+ PYTHONUNBUFFERED=1
6
 
7
  WORKDIR /app
8
 
9
+ # Minimal system deps; no recommends = smaller image
10
+ RUN apt-get update && apt-get install -y --no-install-recommends \
11
  build-essential \
12
  curl \
13
  git \
14
  && rm -rf /var/lib/apt/lists/*
15
 
16
+ # Install Python deps first to leverage Docker layer caching
17
  COPY requirements.txt ./
18
+ RUN pip install --upgrade pip setuptools wheel \
19
+ && pip install --prefer-binary -r requirements.txt
20
 
21
+ # Copy application code and the model artifact
22
+ COPY src/ ./src/
23
+ COPY classifier.pkl ./ # <-- ensures joblib.load("classifier.pkl") works
24
 
25
  EXPOSE 8501
26
 
27
+ # Healthcheck (retry-friendly)
28
+ HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
29
+ CMD curl --fail http://localhost:8501/_stcore/health || exit 1
30
 
31
+ ENTRYPOINT ["streamlit", "run", "src/streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]