|
|
| FROM python:3.11-slim AS builder
|
|
|
| WORKDIR /app
|
|
|
|
|
| RUN apt-get update && \
|
| apt-get install -y --no-install-recommends \
|
| build-essential \
|
| libffi-dev \
|
| && rm -rf /var/lib/apt/lists/*
|
|
|
| COPY requirements.txt .
|
| RUN pip install --no-cache-dir --prefix=/install -r requirements.txt
|
|
|
|
|
| FROM python:3.11-slim
|
|
|
|
|
| RUN useradd -m -u 1000 user
|
| WORKDIR /home/user/app
|
|
|
|
|
| RUN apt-get update && \
|
| apt-get install -y --no-install-recommends \
|
| libglib2.0-0 \
|
| libsm6 \
|
| libxext6 \
|
| libxrender1 \
|
| && rm -rf /var/lib/apt/lists/*
|
|
|
|
|
| COPY --from=builder /install /usr/local
|
|
|
|
|
| COPY --chown=user:user . .
|
|
|
|
|
| RUN mkdir -p /home/user/app/.cache && chown -R user:user /home/user/app/.cache
|
|
|
| USER user
|
|
|
| ENV PYTHONUNBUFFERED=1
|
| ENV HOME=/home/user
|
| ENV PATH="/home/user/.local/bin:$PATH"
|
|
|
|
|
| ENV STREAMLIT_SERVER_PORT=7860
|
| ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
|
| ENV STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
|
|
|
| EXPOSE 7860
|
|
|
| HEALTHCHECK CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7860/_stcore/health')"
|
|
|
| ENTRYPOINT ["streamlit", "run", "app.py"]
|
|
|