pdf-summarize / Dockerfile
ChatBotsTA's picture
Update Dockerfile
771ab5d verified
# Use a slim Python base
FROM python:3.10-slim
# Set working directory
WORKDIR /app
# Streamlit runtime env (sane defaults)
ENV STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION=false
ENV STREAMLIT_SERVER_ENABLE_CORS=false
ENV STREAMLIT_SERVER_HEADLESS=true
ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0
ENV STREAMLIT_SERVER_PORT=8501
ENV STREAMLIT_SERVER_MAX_UPLOAD_SIZE=200 # MB
# Install small set of system deps needed for pillow/pdf parsing
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libjpeg-dev \
zlib1g-dev \
git \
curl \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements and install python deps
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Create .streamlit config (ensures flags applied in the container)
RUN mkdir -p /app/.streamlit \
&& cat > /app/.streamlit/config.toml <<'EOF'\n[server]\nheadless = true\nenableXsrfProtection = false\nenableCORS = false\naddress = "0.0.0.0"\nport = 8501\nmaxUploadSize = 200\nEOF
# Copy app (your Streamlit app file)
COPY app.py .
# Expose port and run Streamlit with explicit flags (override safe)
EXPOSE 8501
CMD ["streamlit", "run", "app.py", \
"--server.enableXsrfProtection=false", \
"--server.enableCORS=false", \
"--server.headless=true", \
"--server.address=0.0.0.0", \
"--server.port=8501"]