| FROM python:3.12-slim |
|
|
| ENV PIP_NO_CACHE_DIR=1 \ |
| PYTHONDONTWRITEBYTECODE=1 \ |
| PYTHONUNBUFFERED=1 |
|
|
| |
| WORKDIR /app |
|
|
| |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| build-essential \ |
| curl \ |
| git \ |
| && rm -rf /var/lib/apt/lists/* |
|
|
| |
| COPY requirements.txt ./ |
| RUN pip install --upgrade pip setuptools wheel \ |
| && pip install --prefer-binary -r requirements.txt |
|
|
| |
| COPY src/ ./src/ |
| COPY classifier.pkl ./src/ |
|
|
| EXPOSE 8501 |
|
|
| |
| HEALTHCHECK --interval=30s --timeout=3s --retries=3 \ |
| CMD curl --fail http://localhost:8501/_stcore/health || exit 1 |
|
|
| |
| WORKDIR /app/src |
| ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"] |
|
|