| # ─── Imagem base: Python 3.11 slim ────────────────────────────────────────── | |
| FROM python:3.11-slim | |
| # Metadata | |
| LABEL maintainer="dashboard-ftth-franca" | |
| LABEL description="Dashboard INFRAESTRUTURA FTTH FRANÇA — Plotly Dash + Flask" | |
| # Evitar prompts interativos durante apt | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PYTHONDONTWRITEBYTECODE=1 | |
| ENV PYTHONUNBUFFERED=1 | |
| # ─── Dependências de sistema para geopandas/shapely ───────────────────────── | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gdal-bin \ | |
| libgdal-dev \ | |
| libgeos-dev \ | |
| libproj-dev \ | |
| libspatialindex-dev \ | |
| build-essential \ | |
| && apt-get clean \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ─── Directório de trabalho dentro do container ────────────────────────────── | |
| WORKDIR /app | |
| # ─── Instalar dependências Python ──────────────────────────────────────────── | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # ─── Copiar código e dados ─────────────────────────────────────────────────── | |
| COPY dashboard_v2.py . | |
| COPY data_processed/ ./data_processed/ | |
| COPY data_reports/ ./data_reports/ | |
| # ─── Porta exposta (Hugging Face Spaces requer 7860) ────────────────── | |
| EXPOSE 7860 | |
| # ─── Variáveis de ambiente para produção ───────────────────────────────────── | |
| ENV DASH_DEBUG=false | |
| # ─── Ponto de entrada ──────────────────────────────────────────────────────── | |
| CMD ["python", "dashboard_v2.py"] | |