pranit / Dockerfile
RushiMane2003's picture
Update Dockerfile
0c80b0a verified
# Multi-stage build for Autonomous Traffic Control HF Space
FROM python:3.11-slim as builder
WORKDIR /build
# Install build dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
git \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir --user -r requirements.txt
# Final stage
FROM python:3.11-slim
WORKDIR /app
# Install runtime dependencies
# libgl1-mesa-glx and libglib2.0-0 are required for OpenCV
RUN apt-get update && apt-get install -y --no-install-recommends \
libsm6 \
libxext6 \
libxrender-dev \
libgl1 \
libglib2.0-0 \
&& rm -rf /var/lib/apt/lists/*
# Copy dependencies from builder
COPY --from=builder /root/.local /root/.local
# Set environment variables
ENV PATH=/root/.local/bin:$PATH \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
STREAMLIT_SERVER_PORT=7860 \
STREAMLIT_SERVER_ADDRESS=0.0.0.0 \
STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
# Copy all application files and assets (models, videos, scripts)
COPY . .
# Expose the default HF Spaces port
EXPOSE 7860
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD streamlit hello || exit 1
# Default command runs the Streamlit dashboard
CMD ["streamlit", "run", "dashboard_final.py", "--server.port", "7860", "--server.address", "0.0.0.0"]