| # Container image for the Andalusia wildfire-allocation app (Hugging Face Spaces / any container host). | |
| # rasterio / pyogrio ship manylinux wheels that bundle GDAL, so no apt GDAL is needed. | |
| FROM python:3.12-slim | |
| # System libs occasionally needed by geospatial / matplotlib wheels at runtime. | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| libexpat1 libgl1 && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Run as a non-root user (Hugging Face Spaces recommended pattern). | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV PATH=/home/user/.local/bin:$PATH \ | |
| STREAMLIT_SERVER_HEADLESS=true | |
| WORKDIR /app | |
| COPY --chown=user requirements.txt requirements.txt | |
| RUN pip install --no-cache-dir --upgrade -r requirements.txt | |
| COPY --chown=user . /app | |
| # Hugging Face Spaces proxies to this port (7860 = HF default; also set as app_port in README). | |
| EXPOSE 7860 | |
| CMD ["streamlit", "run", "app.py", \ | |
| "--server.port=7860", "--server.address=0.0.0.0", "--server.headless=true"] | |