File size: 852 Bytes
466b037
 
1be6960
 
 
2eeec36
7373a44
2eeec36
 
7373a44
1be6960
2eeec36
 
 
7373a44
2eeec36
7373a44
2eeec36
1be6960
 
2eeec36
7373a44
1be6960
7373a44
2eeec36
 
 
7373a44
1be6960
 
2eeec36
7373a44
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
FROM python:3.12-slim

ENV PIP_NO_CACHE_DIR=1 \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

# App root
WORKDIR /app

# System deps
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    curl \
    git \
  && rm -rf /var/lib/apt/lists/*

# Python deps first (better layer caching)
COPY requirements.txt ./
RUN pip install --upgrade pip setuptools wheel \
 && pip install --prefer-binary -r requirements.txt

# App code and model
COPY src/ ./src/
COPY classifier.pkl ./src/

EXPOSE 8501

# Healthcheck
HEALTHCHECK --interval=30s --timeout=3s --retries=3 \
  CMD curl --fail http://localhost:8501/_stcore/health || exit 1

# Run from /app/src so relative paths resolve (classifier.pkl)
WORKDIR /app/src
ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]