MCP_Res / Dockerfile
mgbam's picture
Update Dockerfile
0ca81fc verified
raw
history blame
1.76 kB
# --------------------
# Base image & metadata
# --------------------
FROM python:3.10-slim
LABEL maintainer="Your Name <[email protected]>" \
description="Streamlit app with spaCy, CPU-only, for Hugging Face Space"
# --------------------
# Environment variables
# --------------------
ENV PYTHONUNBUFFERED=1 \
PIP_NO_CACHE_DIR=1 \
PORT=7860 \
HOME=/code \
STREAMLIT_HOME=/code/.streamlit \
STREAMLIT_SERVER_HEADLESS=true \
STREAMLIT_SERVER_ENABLECORS=false \
STREAMLIT_SERVER_ENABLEWEBRTC=false \
STREAMLIT_SERVER_PORT=7860
# --------------------
# Working directory
# --------------------
WORKDIR /code
# --------------------
# System dependencies
# --------------------
RUN apt-get update \
&& apt-get install -y --no-install-recommends build-essential \
&& rm -rf /var/lib/apt/lists/*
# --------------------
# Python dependencies
# --------------------
COPY requirements.txt .
RUN pip install --upgrade pip setuptools wheel \
&& pip install -r requirements.txt
# --------------------
# spaCy English model
# --------------------
RUN python -m spacy download en_core_web_sm
# --------------------
# Copy application code
# --------------------
COPY . .
# --------------------
# Expose port
# --------------------
EXPOSE 7860
# --------------------
# Create non-root user (optional but recommended)
# --------------------
ARG USER_UID=1000
ARG USER_GID=1000
RUN groupadd --gid "$USER_GID" appgroup \
&& useradd --uid "$USER_UID" --gid appgroup --shell /bin/false --no-create-home appuser \
&& chown -R appuser:appgroup /code
USER appuser
# --------------------
# Entrypoint
# --------------------
ENTRYPOINT ["streamlit", "run", "app.py"]
CMD ["--server.address=0.0.0.0", "--server.port=7860"]