|
|
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"] |
|
|
|